在 php 中使用空格、下划线、破折号和点preg_match


preg_match in php with Space, Underscore, Dash and Dot

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

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

我想允许

  • 整数 (0-9)
  • 字符(小写字母和大写字母)(a 到 z 和 A 到 Z)
  • 点 ( . )
  • 下划线 ( _ )
  • 破折号 ( - )
  • 空间 ( )

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

你应该使用:

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

它还将匹配空字符串,因为"*"。

你实际上就在那里。

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

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