我有一个特定的验证场景。
首字符的字符串不应包含特殊字符我可以用/^[!@#$%^&*()_+-=[]{};':"\|,.<>/?]+$/
来实现但是后面的字符不能包含特定的特殊字符,分别为!@$%^*+=[]{};:\|<>?
我尝试使用regex/^[!@#$%^&*()_+-=[]{};':"\|,.<>/?][!@$%^*+=[]{};:\|<>?]+$/
并否定结果,但它不起作用。
我想允许除这些特殊字符以外的所有其他字符,所以我试图否定上面的regex的结果。
我的意思是,第一个字符应该接受除特殊字符外的所有字符,后面的字符应该接受除指定的特殊字符外的所有字符。
你差一点。只是缺少在字符类中使用^
来否定它,并且可能使用+
而不是*
来允许空字符串。
匹配字符串的开始:^
匹配一个字符不是一个! @ # $ % ^和 ;*()_+-=[]{};':& ,"|,灵活的在/?:[^!@#$%^&*()_+-=[]{};':"\|,.<>/?]
匹配不包含!@$%^*+=[]{};:|<>?:[^!@$%^*+=[]{};:\|<>?]*
匹配字符串:$
完整正则表达式:^[^!@#$%^&*()_+-=[]{};':"\|,.<>/?][^!@$%^*+=[]{};:\|<>?]*$