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