Javascript Unicode Redex不匹配字母或数字

Javascript Unicode Redex不匹配字母或数字,javascript,regex,replace,unicode,xregexp,Javascript,Regex,Replace,Unicode,Xregexp,我想将其转换为: var result=mystring.replace(/[^a-zA-Z0-9]+//g'); 到一个正常运行的unicode版本,这样我就可以只索引字母和数字。例如,我不想要[-\%…]。由于JS在本机上不支持此功能,因此我使用 这似乎没有给我任何结果。。。我这里的字母和数字部分正确吗 var s=`Jonathan------\\\\\\\\\\\\\\\\\\\\\\\\'asdfasdf++eé´sé´s,η,П,Б,С,ч,ч`; var r1=XRegExp.

我想将其转换为:

var result=mystring.replace(/[^a-zA-Z0-9]+//g');
到一个正常运行的unicode版本,这样我就可以只索引字母和数字。例如,我不想要[-\%…]。由于JS在本机上不支持此功能,因此我使用

这似乎没有给我任何结果。。。我这里的字母和数字部分正确吗


var s=`Jonathan------\\\\\\\\\\\\\\\\\\\\\\\\'asdfasdf++eé´sé´s,η,П,Б,С,ч,ч`;
var r1=XRegExp.replace(s,/[^\p{L}\p{N}]+/g',);
变量r2=s.替换(/[^a-zA-Z0-9]+//g');
控制台日志(r1);
控制台日志(r2);
想法?谢谢

根据其
替换
支持两个匹配参数<代码>字符串
Regexp
。也就是说,它不会解析字符串表达式,因此将被视为文本字符串替换。要使用
xregex
,首先必须创建一个表达式实例,然后将其用作参数

var s=`Jonathan------\\\\\\\\\\\\\\\\\\\\\\\\\'asdfasdf++eé´sé´s,η,П,ρ,С,τ,ф,Б,ч´;
var match=XRegExp('[^\\p{L}\\p{N}]+','g');
变量r1=XRegExp.replace(s,匹配“”);
变量r2=s.替换(/[^a-zA-Z0-9]+//g');
控制台日志(r1);
控制台日志(r2)

要将Unicode属性转义与RegExp(扩展为XRegExp)一起使用,需要设置Unicode标志

const s=`Jonathan------\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
设r1=s.replace(/[^\p{L}\p{N}]+/gu',)

控制台日志(r1)
你的扩展正则表达式不应该用引号括起来吗?不,没关系,我仍然没有用
'/[^\p{L}\p{N}]+/g'
引号得到不同的结果,因为你可以看到常规正则表达式工作得很好。虽然另一个答案在技术上是我所问的,但这更好,因为我不需要导入任何东西。谢谢