正则表达式为字母数字

Jen*_*eld 2 php regex alphanumeric

我有这个PHP正则表达式:

$username = preg_replace('/[^a-z0-9]/i', '', $username);
Run Code Online (Sandbox Code Playgroud)

它只允许A-Z0-9.我怎么能允许.,-而且_还有?

cod*_*ict 9

您可以使用以下正则表达式:

/[^a-z0-9._-]/i
Run Code Online (Sandbox Code Playgroud)
  • 我最后是使模式匹配不区分大小写.您可以删除它并使用:/[^a-zA-Z0-9._-]/
  • - (连字符)在char类中有一个特殊的含义,如果它被双面包围,所以我们把它放在最后,以便字面上对待它.你也可以这样做:/[^a-z0-9.\-_]/我们在哪里逃避连​​字符
  • char类中的点不是元字符,因此将按字面处理,无需转义.