【发布时间】:2020-12-01 01:57:19
【问题描述】:
我想转换这个:
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>
想法?谢谢!
【问题讨论】:
-
你的扩展正则表达式不应该用引号括起来吗?
-
不,没关系,我仍然没有得到不同的结果
'/[^\p{L}\p{N}]+/g'不需要引号,因为您可以看到常规正则表达式工作正常。
标签: javascript regex replace unicode xregexp