我使用PHP preg_match()
来检查正则表达式列表。该函数用于检查字母数字、空格、下划线、短划线、星号和问号。但除了问号和星号外,它只接受以上所有内容。
return (bool) preg_match('/^[a-z0-9 _-]+$/i', $str);
该功能是检查字母数字、空格、下划线、短划线、星号和问号,但它只接受除问号和星号之外的所有内容
因为在角色类中没有?
或*
。尝试
return (bool) preg_match('/^['w*? -]+$/', $str);
'w
已包含[A-Za-z0-9_]
请参阅regex101 上的演示
这是因为您需要对其他字符进行转义,因为它们是保留的特殊字符。
return (bool) preg_match('/^[a-z0-9 _-'?'*]+$/i', $str);