如果字符串包含字母数字值和特殊字符,那么在preg_match中验证字符串的正确语法是什么?


What's the proper syntax in preg_match for validating a string if it contains a alphanumeric value w/ special characters

我用这个…我在一些网站上看到这个…但它并没有很好地帮助我。

if(preg_match("/^[A-Za-z0-9-_'",''s]+$/",$newPass)) {
    //is valid..
}

如果要测试字符串是否至少包含一个字母数字字符串和至少包含一个非字母数字字符串,请使用以下正则表达式:

/^(?=.*[a-z0-9])(?=.*[^a-z0-9])/i

分手:

  • /开始的正则表达式
  • ^匹配字符串
  • 的开头
  • (?=,如果存在以下情况:
    • .*任何内容(除了换行符),然后
    • [a-z0-9]一个字母数字字符
  • ) forward结束
  • (?=,如果出现以下情况:
    • .*任何内容(除了换行符),然后
    • [^a-z0-9]非字母数字字符
  • ) forward结束
  • / regex结尾
  • i不区分大小写

用法:

if(preg_match("/^(?=.*[a-z0-9])(?=.*[^a-z0-9])/i",$newPass)) {
    //is valid..
}

如果你要求字母和数字同时出现,用两个替换第一个前瞻:

/^(?=.*[a-z])(?=.*[0-9])(?=.*[^a-z0-9])/i