PHP 检查字符串只包含任何语言的字母数字和空格

PHP check string has contains only letters numbers and spaces in any language

我如何检查字符串是否只包含任何语言的字母数字和空格?

我试过下面的方法,但它不检查特殊字符,如 -*/。

 preg_match("/[\p{L}]/u", $string )
 preg_match("/[\p{N}]/u", $string  )

你可以使用

preg_match('~^[\p{L}\p{N}\s]+$~uD', $string)

详情

  • ^ - 字符串开头
  • [\p{L}\p{N}\s]+ - 一个或多个字母、数字或空格
  • $ - 字符串结尾。

u 修饰符将启用 Unicode 字符串解析,并使正则表达式中的所有模式都识别 Unicode,D 将使 $ 匹配 最后 的字符串。