如何使用正则表达式检查用户输入是否仅包含特殊字符?
如何对不允许使用特殊字符的字段进行validation,这意味着允许AB#,A89@,@#ASD
,但不允许使用@#$^&
或#
。 我需要RegEx进行此validation。
str.match(/^[AZ#@,]+$/)
将匹配一个字符串……
- …以封闭模式开始
^
并结束$
- …包含任何大写字母
AZ
(不符合小写字母) - …只包含特殊字符
#
,@
,和 - …至少有1个字符(没有空字符串)
对于不区分大小写的情况,您可以在结尾处添加i
:(ig /pattern/i
)
** 更新 **
如果需要validation字段是否仅包含特殊字符,则可以检查字符串是否仅包含非字或数字的字符:
if (str.match(/^[^A-Z0-9]*$/i)) { alert('Invalid'); } else { alert('Valid'); }
这将匹配仅包含非字母数字字符的字符串。 空字符串也会产生无效。 将*
替换为+
以允许空字符串有效。
如果您可以使用“否定匹配”进行validation,即如果正则表达式不匹配则输入正常,那么我建议
^\W*$
这将匹配仅包含非单词字符(或空字符串)的字符串。
如果您需要积极匹配,请使用
^\W*\w.*$
如果字符串中至少有一个字母数字字符,则匹配。
我相信你要找的是这样的:
!str.match(/^[@#$^&]*$/)
检查字符串是否仅包含符号,即它包含至少一个不是符号的字符。