$rex = '/^[^<,"@?=>|;#]$/i';
Run Code Online (Sandbox Code Playgroud)
我在使用这个正则表达式时遇到了麻烦.我们的想法是检查输入字段是否存在某些字符,如果存在,则抛出错误.
这个正则表达式为每个超过1个字符的字符串抛出错误.谁能告诉我我做错了什么?
编辑:人们说他们看不到我想用这个正则表达式做什么.我想要做的是如果以下字符之一是输入字符串的一部分,则拒绝输入:
<>,"@?= |;#
EDIT2:JG的"有效"正则表达式可以解决这个问题.
你有$后,你的表达和^在开始的时候,这意味着你已经接受正好一个字符.
编辑(根据评论):
你可以试试,看看你的输入字段只有具有有效的字符,通过匹配它反对这个(如果它匹配,这意味着没有无效字符):
$rex = '/^[^<,"@$?=>|;#]+$/i'
Run Code Online (Sandbox Code Playgroud)
您也可以反过来,即使用混沌提供的正则表达式测试输入字段是否包含任何无效字符:
$rex = '/[<,"@$?=>|;#]/';
Run Code Online (Sandbox Code Playgroud)
这样,如果正则表达式匹配,则表示您具有无效字符.