这是正则表达式
$fnameRegex =“/ ^ [a-zA-Z0-9 {0,40} -_] $/”;
我可能会把{0,40}放在错误的地方.
$fnameRegex = "/^[a-zA-Z0-9\-_]{0,40}$/";
字符类[]中的所有内容只匹配一个字符.你把数量限制器放在它之外(你之前有1或更多 – 用{0,40}替换它,它在0到40之间).
我也在你的角色类中逃脱了你的角色,否则它将被解释为一个范围.
我还向你推荐了一个很棒的regexr网站,这个网站有利于交互式玩正则表达式.