【发布时间】:2011-08-28 13:17:47
【问题描述】:
我怎样才能在任何地方做到这一点?
基本上,我正在尝试匹配各种杂项字符,例如&符号、分号、美元符号等。
【问题讨论】:
-
/[^a-zA-Z0-9\s\:]*/
标签: regex
我怎样才能在任何地方做到这一点?
基本上,我正在尝试匹配各种杂项字符,例如&符号、分号、美元符号等。
【问题讨论】:
/[^a-zA-Z0-9\s\:]*/
标签: regex
在 JavaScript 中:
/[^\w_]/g
^ 否定,即选择以下集合中非的任何内容
\w任何单词字符(即任何字母数字字符,加上下划线)
_ 否定下划线,因为它被视为“单词”字符
使用示例 - const nonAlphaNumericChars = /[^\w_]/g;
【讨论】:
[^\w_] 与[^\w] 相同(因为_ 是一个字字符),它等于\W。
正如RegexBuddy 所说,它不适用于 Chrome 上的 JavaScript。但是这里已经有一个例子了。
这主要的部分是:
\p{L}
代表\p{L} 或\p{Letter} 来自任何语言的任何类型的字母。`
完整的正则表达式本身: [^\w\d\s:\p{L}]
【讨论】:
如果您的意思是“非字母数字字符”,请尝试使用:
var reg =/[^a-zA-Z0-9]/g //[^abc]
【讨论】:
尝试添加这个:
^[^a-zA-Z\d\s:]*$
这对我有用... :)
【讨论】:
^ 和 $ 锚将其限制为匹配整行,* 量词意味着它也匹配空行。
试试这个:
[^a-zA-Z0-9 :]
JavaScript 示例:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
查看在线示例:
【讨论】:
[^a-zA-Z0-9 :] 可以替换为[^\w:]
\w 也包含下划线,所以请留意
应该这样做:
[^a-zA-Z\d\s:]
【讨论】:
如果您想将带重音的拉丁字符(例如 à Ñ)视为普通字母(即避免也匹配它们),您还需要在您的正则表达式中包含适当的 Unicode 范围 (\u00C0-\u00FF),所以它看起来像这样:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^ 否定接下来的内容a-zA-Z 匹配大小写字母\d 匹配数字\s 匹配空格(如果你只想匹配空格,用空格替换): 匹配冒号\u00C0-\u00FF 匹配带重音的拉丁字符的 Unicode 范围。注意。 Unicode 范围匹配可能不适用于所有正则表达式引擎,但上述内容肯定适用于 Javascript(如 Codepen 上的 this pen 所示)。
nb2。如果您不介意匹配下划线,可以将a-zA-Z\d 替换为\w,它匹配字母、数字和下划线。
【讨论】:
没有字母数字、空格或“_”。
var reg = /[^\w\s)]|[_]/g;
【讨论】:
[^a-zA-Z\d\s:]
【讨论】:
\d 和 \s 是 Perl 扩展,它们通常不受 grep、sed、tr、lex 等旧工具的支持。