我正在尝试使用 preg_match() 在 PHP 中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要 preg_match() 来:

  • 只接受字符串开头和结尾的字母或数字
  • 接受句点、破折号、下划线、字母、数字
  • 的长度必须在 5-20 个字符之间

  • preg_match('/^[a-zA-Z0-9]+[.-_]*[a-zA-Z0-9]{5,20}$/', $username)
    

    最佳答案

    将需求分解成更小的部分,你会发现它变得容易多了:

  • 第一个字符必须是 1 个字母或数字
  • 中间字符必须是句点、下划线、字母或数字
  • 最后一个字符必须是字母或数字
  • 由于第一段和最后一段必须是1个字符,中间必须是3到18个

  • ~^[a-z0-9]{1}[a-z0-9._-]{3,18}[a-z0-9]{1}$~i
    

    关于php - 如何使用 `preg_match()` 匹配用户名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9969604/

    10-12 20:48