我觉得这将是一个愚蠢的问题,但我完全感到困惑。
我正在使用用于 Javascript 的 XRegExp 库来生成一个正则表达式,它匹配任何字母表中的任何单词,并且不匹配带有数字、标点符号或特殊字符的单词。该库可在此处找到:http: //xregexp.com/
这是我到目前为止所拥有的:
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"));
}
这会产生以下输出:
Hello : true
Hello789 : false
Hello£*&£ : false
你好世界 : 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}', ''));
所有这些都返回我给它们的相同字符串,根本没有任何变化。任何人都知道我做错了什么?