if(preg_match('@^([^\W_]*\s){0,3}[^\W_]*$@', $_POST['txt_username_reg']))
. . .
以上行用于PHP。
'@^([^\W_]*\s){0,3}[^\W_]*$@'
正则表达式允许“英文字符+数字+最多3个空格”。
我如何允许以下内容:
答案 0 :(得分:1)
\ W将与标准ASCII英文字符匹配,我之前已经对此进行了研究,直到现在才找到解决方案。
我通常会建议匹配单词的分隔符(或边界),并禁止任何不需要的字符。
但是有不同的方法, 请查看这些链接以获取更多信息。
答案 1 :(得分:1)
\p{L}
匹配任何Unicode字母。所以
if(preg_match('/^(?:\p{L}*_){1,4}\p{L}*$/u', $_POST['txt_username_reg']))
实现您的要求。但是,目前这些要求允许_
作为密码,因此您可能需要重新考虑这些。