我的目标是用字符串中的任何语言替换所有不是破折号( - )或不是数字或字母的字符。所有#!()[]和所有其他符号用空字符串替换。所有出现的 - 也不应该被替换。 我已经使用了这个XRegExp插件,但似乎我找不到神奇的解决方案:) 我试过这样的:
var txt = "Ad СТИНГ (ALI) - Englishmen In New York";
var regex = new XRegExp('\\p{^N}\\p{^L}',"g");
var b = XRegExp.replace(txt, regex, "")
但结果是:AСТИН(AL EnglishmeINeYork ......这有点奇怪
如果我尝试添加条件而不删除' - '字符会导致RegEx无效。
答案 0 :(得分:1)
\\p{^N}\\p{^L}
表示非数字后跟非字母。
尝试[^\\p{N}\\p{L}-]
表示非数字,非字母,非破折号。
A jsfiddle在哪里进行一些测试......第三个XRegExp
是您提出的问题。
答案 1 :(得分:1)
\p{^N}\p{^L}
是非数字,后跟非字母。你可能想说一个既不是字母也不是数字的字符:
[^\p{N}\p{L}]
答案 2 :(得分:0)
// all non letters/numbers in a string => /[^a-zA-z0-9]/g
我不知道XRegExp。
但是在js Regexp中你可以用
替换它b.replace(/[^a-zA-z0-9]/g,'')