我想在PHP中验证用户名并使用正则表达式检查它们。它们应包含至少2个“真实”字符,例如A
,Ä
,s
,1
或5
,但其他一些字符如{{1}或者.
或者也应该允许空格。所需字符的位置无关紧要。
这是我到目前为止所做的,遗憾的是还允许_
作为用户名:
...
我想只允许某些字符。例如,没有preg_match('/^[\pL\pN\s-+_.]+$/u', $value)
或<
。
我怎么能这样做?
答案 0 :(得分:1)
让我们看看......
^(?:.*?[\p{L}\p{N}]){2}
^[-+.\w ]+$
让我们将它们结合起来,我们得到:
^(?=(?:.*?[\p{L}\p{N}]){2})[-+.\w ]+$
我使用 lookahead 作为检查至少有2个必需字符的部分,并将其他所有内容放在模式的主要部分中。这可以让您通过同一输入检查两种不同的条件。