Php 通过regexp检查用户名
对于我的注册,我用我的正则表达式检查用户名——用户名必须包含3个以上20个以下的字符。此外,用户名只能包含字母数字字符和““,”,“-” 现在我想检查(p-),如果存在,返回假用户名不能内容(p-)Php 通过regexp检查用户名,php,regex,Php,Regex,对于我的注册,我用我的正则表达式检查用户名——用户名必须包含3个以上20个以下的字符。此外,用户名只能包含字母数字字符和““,”,“-” 现在我想检查(p-),如果存在,返回假用户名不能内容(p-) 我知道您不希望用户名以-结尾。这就是这个 ^[\w.-]{2,19}[\w.]$ 由于\w包含下划线,这将允许用户名以下划线结尾,但不能以破折号结尾,因为破折号不是定义最后一个字符的字符类的一部分 看到了吗 正如zerkms评论的那样,s修饰符在这里没有任何意义,因为它改变了不使用的特殊字符的行为
我知道您不希望用户名以
-
结尾。这就是这个
^[\w.-]{2,19}[\w.]$
由于\w
包含下划线,这将允许用户名以下划线结尾,但不能以破折号结尾,因为破折号不是定义最后一个字符的字符类的一部分
看到了吗
正如zerkms评论的那样,
s
修饰符在这里没有任何意义,因为它改变了不使用的
特殊字符的行为
另外,i
修饰符没有意义,它将匹配小写和大写字母,但您不使用字母来定义表达式
更新
那你需要一个
(?!*p-
是一个消极的前瞻,只要字符串中的任何地方有p-
,此断言就会失败
查看它我知道您不希望用户名以
-
结尾。这就是这个
^[\w.-]{2,19}[\w.]$
由于\w
包含下划线,这将允许用户名以下划线结尾,但不能以破折号结尾,因为破折号不是定义最后一个字符的字符类的一部分
看到了吗
正如zerkms评论的那样,
s
修饰符在这里没有任何意义,因为它改变了不使用的
特殊字符的行为
另外,i
修饰符没有意义,它将匹配小写和大写字母,但您不使用字母来定义表达式
更新
那你需要一个
(?!*p-
是一个消极的前瞻,只要字符串中的任何地方有p-
,此断言就会失败
看到了吗
s
修饰符在这里毫无意义。而且,“如果存在返回错误用户名超链接内容(p-)”的解释不够清楚s
修饰符在这里没有任何意义。“如果存在返回错误用户名不能内容(p-”的解释不清楚。不,我希望用户名包含“p-”例如davp idNo,我希望用户名包含“p-”例如davp id
^[\w.-]{2,19}[\w.]$
^(?!.*p-)[\w.-]{3,20}$