用于字母数字和hypen输入的PHP正则表达式

Mar*_*son 1 php regex

是否有可能验证取决于它是否只包含字母,数字和连字符的组合输入(其中一个连字符,不重复两次在一个排,并没有开始/结束的字符串)?

感谢验证用户名为带下划线的字母数字

我知道以下验证基于带下划线的字母数字输入的字符串,是否可以改变它?

function validate_alphanumeric_underscore($str) 
{
    return preg_match('/^[a-zA-Z0-9_]+$/',$str);
}
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助!

mea*_*gar 12

使用单个正则表达式可以非常轻松地完成此操作:

/^([a-z0-9]+-)*[a-z0-9]+$/i
Run Code Online (Sandbox Code Playgroud)

这符合您的所有标准:

  • 没有双连字符
  • 没有开头/结尾连字符
  • strlen == 1时有效

火柴:

不匹配:

发挥它在这里.