Javascript Unicode Redex 匹配的不是字母或数字
Javascript Unicode Redex matching NOT a letter or a number
我想转换为:
var result = mystring.replace(/[^a-zA-Z0-9]+/g, ' ');
到一个正常运行的 unicode 版本,这样我就可以只索引字母和数字。例如,我不想要 [-_%<>...]。由于 JS 本身不支持此功能,因此我使用 xregexp.
这似乎没有给我任何结果...我的字母和数字部分是否正确?
<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
<script>
var s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
var r1 = XRegExp.replace(s, /[^\p{L}\p{N}]+/g, ' ');
var r2 = s.replace(/[^a-zA-Z0-9]+/g, ' ');
console.log(r1);
console.log(r2);
</script>
想法?谢谢!
根据他们documentation replace
支持两种匹配参数; string
和 Regexp
。话虽如此,它不会解析字符串表达式,因此将被视为文字字符串替换。要使用 xregex
,您首先必须创建一个表达式实例,然后将其用作参数。
var s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
var match = XRegExp('[^\p{L}\p{N}]+', 'g');
var r1 = XRegExp.replace(s, match, ' ');
var r2 = s.replace(/[^a-zA-Z0-9]+/g, ' ');
console.log(r1);
console.log(r2);
<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
为了使用 Unicode 属性 转义符和 RegExp(以及扩展名 XRegExp),您需要设置 Unicode 标志。
const s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
let r1 = s.replace(/[^\p{L}\p{N}]+/gu, ' ')
console.log(r1);
我想转换为:
var result = mystring.replace(/[^a-zA-Z0-9]+/g, ' ');
到一个正常运行的 unicode 版本,这样我就可以只索引字母和数字。例如,我不想要 [-_%<>...]。由于 JS 本身不支持此功能,因此我使用 xregexp.
这似乎没有给我任何结果...我的字母和数字部分是否正确?
<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
<script>
var s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
var r1 = XRegExp.replace(s, /[^\p{L}\p{N}]+/g, ' ');
var r2 = s.replace(/[^a-zA-Z0-9]+/g, ' ');
console.log(r1);
console.log(r2);
</script>
想法?谢谢!
根据他们documentation replace
支持两种匹配参数; string
和 Regexp
。话虽如此,它不会解析字符串表达式,因此将被视为文字字符串替换。要使用 xregex
,您首先必须创建一个表达式实例,然后将其用作参数。
var s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
var match = XRegExp('[^\p{L}\p{N}]+', 'g');
var r1 = XRegExp.replace(s, match, ' ');
var r2 = s.replace(/[^a-zA-Z0-9]+/g, ' ');
console.log(r1);
console.log(r2);
<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
为了使用 Unicode 属性 转义符和 RegExp(以及扩展名 XRegExp),您需要设置 Unicode 标志。
const s = `joanthan------______++++++ <me> bornss $%^&\` asdfasdf+++áeé´sé´s , н, п, р, с, т, ф, х, ц, ч`;
let r1 = s.replace(/[^\p{L}\p{N}]+/gu, ' ')
console.log(r1);