我似乎无法弄清楚如何在任何地方做这个。有什么帮助吗?
基本上我试图匹配各种杂项字符,如&符号,分号,美元符号等。
答案 0 :(得分:210)
[^a-zA-Z\d\s:]
答案 1 :(得分:33)
这应该这样做:[^a-zA-Z\d\s:]
希望它有所帮助!
答案 2 :(得分:13)
试试这个
[^a-zA-Z0-9 :]
JS示例:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
参见在线示例:
答案 3 :(得分:12)
如果您想将重音拉丁字符(例如àÑ)视为普通字母(即避免匹配它们),您还需要在正则表达式中包含适当的Unicode范围(\u00C0-\u00FF) ,所以它看起来像这样:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^
否定后面的内容a-zA-Z
匹配大写和小写字母\d
匹配数字\s
匹配空格(如果您只想匹配空格,请将其替换为空格):
匹配冒号\u00C0-\u00FF
匹配重音拉丁字符的Unicode范围。NB。 Unicode范围匹配可能不适用于所有正则表达式引擎,但上面肯定适用于Javascript(如Codepen上的this pen所示)。
NB2。如果您对匹配下划线不感兴趣,可以将a-zA-Z\d
替换为\w
,其中包含字母,数字和下划线。
答案 4 :(得分:2)
如果您的意思是“非字母数字字符”,请尝试使用此
var reg =/[^a-zA-Z0-9]/g //[^abc]
答案 5 :(得分:1)
没有字母数字,空格或' _'。
var reg = /[^\w\s)]|[_]/g;
答案 6 :(得分:1)
此正则表达式仅适用于C#,PCRE和Golang。
RegexBuddy所说,它不适用于Chrome上的JavaScript。 但是这里已经有一个例子了。
这主要部分是:
\p{L}
代表\p{L}
或\p{Letter}
来自任何语言的任何字母。
完整的正则表达式本身: [^\w\d\s:\p{L}]
答案 7 :(得分:0)
尝试添加此
^[^a-zA-Z\d\s:]*$
这对我有用...... :)
答案 8 :(得分:0)
"0_0 (: /-\ :) 0-0".replace(/[^a-zA-Z0-9 :]/g,"")
对我有用。然而,
replace(/[^a-zA-Z/d :]/g,"")
不适合我。
答案 9 :(得分:0)
在JavaScript中:
/[^\w_]/g
^
取反,即在以下集合中选择 not 中的任何内容
\w
任何单词字符(即任何字母数字字符加下划线)
_
对下划线取反,因为它被认为是“单词”字符
用法示例-const nonAlphaNumericChars = /[^\w_]/g;