Javascript 正则表达式-替换为XRegExp

Javascript 正则表达式-替换为XRegExp,javascript,regex,xregexp,Javascript,Regex,Xregexp,我觉得这将是一个愚蠢的问题,但我完全困惑不解 我正在使用用于Javascript的XRegExp库生成一个正则表达式,它匹配任何字母表中的任何单词,而不匹配带有数字、标点符号或特殊字符的单词。该库位于以下位置: 这就是我到目前为止所做的: var tests = [ "Hello", "Hello789", "Hello£*&£", "你好世界", "你好世界((£&" ]; var reg = XRegExp('^\\p{L}+$');

我觉得这将是一个愚蠢的问题,但我完全困惑不解

我正在使用用于Javascript的XRegExp库生成一个正则表达式,它匹配任何字母表中的任何单词,而不匹配带有数字、标点符号或特殊字符的单词。该库位于以下位置:

这就是我到目前为止所做的:

var tests = [
    "Hello",
    "Hello789",
    "Hello£*&£",
    "你好世界",
    "你好世界((£&"
];

var reg = XRegExp('^\\p{L}+$');

for (var i = 0; i < tests.length; i++) {
    console.log (tests[i] + " : " + (reg.test(tests[i]) ? "true" : "false"));
}
我知道
reg
匹配的是正确的东西,但如何在替换中使用它,以便去掉数字、标点符号和特殊字符?我想要的输出是:

Hello : Hello
Hello789 : Hello
Hello£*&£ : Hello
你好世界 : 你好世界
你好世界((£& : 你好世界
这些都是我迄今为止尝试过但没有成功的事情:

XRegExp.replace(tests[i], '^\\p{L}+$', ''));
XRegExp.replace(tests[i], '\\p{L}+$', ''));
XRegExp.replace(tests[i], '^\\p{L}', ''));
XRegExp.replace(tests[i], '\\p{L}', ''));

所有这些都返回我给它们的相同字符串,没有任何更改。有人知道我做错了什么吗?

您的正则表达式只匹配字母,但听起来您想匹配除字母以外的所有内容:

然后可以用空字符串替换所有匹配的内容

XRegExp.replace(tests[i], reg, '');

你忘了把结果赋给一个变量吗?我希望它能这么简单!但是没有,我肯定会得到结果。也许你应该准确地检查匹配的内容,而不仅仅是
test
。替换时,正则表达式必须匹配你想更改的内容。你的表情和你想替换的东西不匹配。我就知道这会是件愚蠢的事。正则表达式真让人困惑!但谢谢你:)这个答案有道理,但问题的最后一部分没有。它应该已经取代了一些东西。
var reg = XRegExp('\\P{L}+', 'g');
XRegExp.replace(tests[i], reg, '');