Answers:
应该这样做:
[^a-zA-Z\d\s:]
如果您想将带重音的拉丁字符(例如àÑ)视为普通字母(即也避免匹配它们),则还需要在正则表达式中包括适当的Unicode范围(\ u00C0- \ u00FF),因此看起来像这样:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^
否定接下来的事情a-zA-Z
匹配大小写字母\d
匹配数字\s
匹配空格(如果您只想匹配空格,请将其替换为空格):
匹配冒号\u00C0-\u00FF
匹配带重音的拉丁字符的Unicode范围。nb。Unicode范围匹配可能不适用于所有正则表达式引擎,但以上内容肯定适用于Javascript(如在Codepen上的这支笔所示)。
nb2。如果您不必担心下划线的匹配,可以将替换a-zA-Z\d
为\w
,以匹配字母,数字和下划线。
试试这个:
[^a-zA-Z0-9 :]
JavaScript示例:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
查看在线示例:
没有字母数字,空格或“ _”。
var reg = /[^\w\s)]|[_]/g;
RegexBuddy所说的,它不适用于Chrome上的JavaScript 。但是这里已经有一个例子了。
其主要部分是:
\p{L}
代表\p{L}
或\p{Letter}
来自任何语言的任何形式的信件。
完整的正则表达式本身: [^\w\d\s:\p{L}]
/[^a-zA-Z0-9\s\:]*/