if(preg_match('@^([^'W_]*'s){0,3}[^'W_]*$@', $_POST['txt_username_reg']))
. . .
上面这行在PHP中使用。
'@^([^'W_]*'s){0,3}[^'W_]*$@'
正则表达式允许"英文字符+数字+最多3个空格"。
如何允许以下内容:
- 4下划线显示最大值&Unicode字符(只允许没有特殊字符-丢弃括号内的请求)。
'W将匹配标准ASCII英文字符,我之前对此做过研究,直到现在才找到解决方案。
我通常建议匹配单词的分隔符(或边界),并禁止任何不需要的字符。
尽管有不同的方法可用,查看这些链接以获取更多信息。
- http://www.regular-expressions.info/unicode.html
- http://www.regular-expressions.info/refunicode.html
- http://www.regular-expressions.info/wordboundaries.html
'p{L}
匹配任何Unicode字母。所以
if(preg_match('/^(?:'p{L}*_){1,4}'p{L}*$/u', $_POST['txt_username_reg']))
实现您的需求。但是,目前这些要求允许将_
作为密码,因此您可能需要重新考虑这些。