Regex PHP IF包含和限制
我有这个正则表达式,我使用PHP preg_match来过滤用户名。 我想创造条件:Regex PHP IF包含和限制,php,regex,preg-match,conditional,Php,Regex,Preg Match,Conditional,我有这个正则表达式,我使用PHP preg_match来过滤用户名。 我想创造条件: 最小3个字符,必须以a-zA-Z开头 不能以下划线结尾 如果字符串包含下划线“u”,则下一个下划线应为a-zA-Z0-9(例如a_3,hello_w),基本上这将防止用户名包含多个下划线,例如a_h。但重复的下划线,例如“h”和“t”并不是问题 下划线是可选的 用户名只能包含a-zA-Z0-9和下划线 这是我的代码: /^(?=.{3})[A-Za-z][A-Za-z0-9](?:([A-Za-z0-9]+
- 最小3个字符,必须以a-zA-Z开头
- 不能以下划线结尾
- 如果字符串包含下划线“u”,则下一个下划线应为a-zA-Z0-9(例如a_3,hello_w),基本上这将防止用户名包含多个下划线,例如a_h。但重复的下划线,例如“h”和“t”并不是问题
- 下划线是可选的
- 用户名只能包含a-zA-Z0-9和下划线
- 测试123
- 测试_1(这一个不适用于上面的代码)我试图放置 {1,}但是其他一些测试字符串不匹配
- 测试单元a1
- 德斯图12
- h1_h1
- t11
- t11a
if (preg_match('/^[a-z]((?!__)[a-z\d_])+[a-z\d]$/i', $str)) {
echo 'matched';
}
所以我不能使用我的首选用户名?这是为什么?比如你喜欢的用户名?我只想只允许下划线和一些其他字符。允许用户想要的任何东西有什么错?避免混淆,也避免不必要的字符到他们的用户名,这实际上不是一个好的用户名。谢谢你,你不需要我作为你网站的用户,这很公平。谢谢。你能给我解释一下什么是(?)?如果我想允许更多字符,如连字符,那么我只需要这样更改?-->/^[a-z]((?!)(?!--)[a-z\d-]+[a-z\d]$/i@user3562733not在字符串中包含两个下划线。您好,如果我想限制最多20个字符,我应该放什么?@user3562733将
+
更改为{1,18}