带有Space,Underscore,Dash和Dot的php中的preg_match

时间:2014-12-29 03:13:04

标签: php regex preg-match

我正在尝试使用以下代码匹配PHP中的正则表达式。

if (!preg_match("/^[a-zA-Z0-9-_.]*$/",$string)) { 
  // Show error
 }

我想允许

  • 整数(0-9)
  • 字符(小写字母和大写字母)(a到z和A到Z)
  • Dots(。)
  • 下划线(_)
  • 短跑( - )
  • Space()

它不起作用。有没有人对我做错了什么有任何建议?

2 个答案:

答案 0 :(得分:0)

你几乎就在那里。

if (preg_match('/^[a-zA-Z0-9-_. ]*$/', $string) !== 1) {
  // Show error
}

假设您想要允许空字符串。否则,请将*更改为+

答案 1 :(得分:0)

您应该使用:

if (!preg_match("/^[\w\s\.-]*$/",$string)) {
    #show error
}

由于' *'。

,它也会匹配空字符串