(inverse)
| 2994 | } |
| 2995 | |
| 2996 | function getInverseReplacer(inverse){ |
| 2997 | var single = [], |
| 2998 | multiple = []; |
| 2999 | |
| 3000 | Object.keys(inverse).forEach(function(k){ |
| 3001 | if(k.length === 1){ |
| 3002 | single.push("\\" + k); |
| 3003 | } else { |
| 3004 | multiple.push(k); |
| 3005 | } |
| 3006 | }); |
| 3007 | |
| 3008 | //TODO add ranges |
| 3009 | multiple.unshift("[" + single.join("") + "]"); |
| 3010 | |
| 3011 | return new RegExp(multiple.join("|"), "g"); |
| 3012 | } |
| 3013 | |
| 3014 | var re_nonASCII = /[^\0-\x7F]/g, |
| 3015 | re_astralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; |