Javascript正则表达式符号,但不是空间
Javascript regex for symbol but not space
我想测试一个字符串的符号(例如$%^&*
),所以我使用以下regex工作良好:
/['W+]/.test(string)
但是,这个正则表达式也匹配一个空格。我真正想测试的是一个符号,而不是一个空间。我正在尝试以下代码,但仍然匹配空格:
/['W'S+]/.test(string)
有更好的方法吗?
由于空格包含在'W
中,您需要使用一个否定的字符类:
[^'w's]
但是,您必须清楚地定义您所谓的"符号",因为该字符类包括例如重音字母和所有超出ascii范围的字符。
'W
相当于[^A-Za-z0-9_]
,意思是"除这些字符以外的任何字符"。因此,您可以使用[^A-Za-z0-9_ ]
(注意末尾的空格)来排除空格。
您可以为'W
(即'w
)使用反向简写字符类,并在字符类中使用否定:
/[^'w's]+/.test(string)
你的正则表达式['W'S+]
也匹配文字+
,因为它是字符类的一部分。我认为你需要把它放在类之外,以匹配1个或多个字符。
这个正则表达式可以帮助你:[^'s'w]
你也可以试试这个
(?!'s)'W
这将匹配任何非单词字符,但不匹配空格。
/(?:(?!'s)'W)+/.test(string)
即匹配一个或多个非单词字符,但不包含空格。
演示相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- Javascript正则表达式空间检查
- 不能使用正则表达式将空格替换为零宽度空间
- 电子邮件的正则表达式允许空白空间、有效电子邮件地址和多个电子邮件地址
- 为了留出空间,应该对此正则表达式进行哪些修改
- 如何分割正则表达式空间和标点匹配,但保留结果数组中的标点符号
- 正则表达式词边界空间
- 用于精确命名空间的正则表达式
- 使用正则表达式删除项目符号后,在字符之间获得额外的空间
- 使用JavaScript在正则表达式中根据名称添加有限的空间
- Javascript不会将毛发空间解释为带有正则表达式的空间
- Javascript正则表达式符号,但不是空间