这是一场比赛:
preg_match('/[a-bA-B0-9]+/', 'username')
但这不是:
preg_match('/^[a-bA-B0-9]+$/', 'username')
为什么?
答案 0 :(得分:3)
您是否在测试实际文字'username'
?
/[a-bA-B0-9]+/
将测试a,b,A,B,0,1,2,3,4,6,6,7,8,9 中的存在串。因此它将与abBa854Abba32
匹配,并且匹配sjfsgfafnvesv
。
/^[a-bA-B0-9]+$/
将测试 enitre 字符串是否由a,b,A,B,0,1,2,3,5,5,7,8组成, 9。因此它会与abBa854Abba32
匹配,并且与sjfsgfafnvesv
不匹配。
也许你的意思是/^[a-zA-Z0-9]+$/
。
答案 1 :(得分:2)
第二个不匹配,因为您告诉正则表达式将启动的序列与字符类中的其中一个项匹配。你的字符串的第一个字母是“u”,你的角色类中没有“你”[a-bA-B0-9]。
答案 2 :(得分:2)