Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过regexp检查用户名_Php_Regex - Fatal编程技术网

Php 通过regexp检查用户名

Php 通过regexp检查用户名,php,regex,Php,Regex,对于我的注册,我用我的正则表达式检查用户名——用户名必须包含3个以上20个以下的字符。此外,用户名只能包含字母数字字符和““,”,“-” 现在我想检查(p-),如果存在,返回假用户名不能内容(p-) 我知道您不希望用户名以-结尾。这就是这个 ^[\w.-]{2,19}[\w.]$ 由于\w包含下划线,这将允许用户名以下划线结尾,但不能以破折号结尾,因为破折号不是定义最后一个字符的字符类的一部分 看到了吗 正如zerkms评论的那样,s修饰符在这里没有任何意义,因为它改变了不使用的特殊字符的行为

对于我的注册,我用我的正则表达式检查用户名——用户名必须包含3个以上20个以下的字符。此外,用户名只能包含字母数字字符和““,”,“-”

现在我想检查(p-),如果存在,返回假用户名不能内容(p-)


我知道您不希望用户名以
-
结尾。这就是这个

^[\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}$