php只允许使用pregmatch的字母,数字,空格和特定符号

2022-08-30 13:20:33

在我的php上,我用来验证输入文本。preg_match

if(preg_match('/^[a-zA-Z0-9]+$/', $firstname)) {
}

但这只允许字母数字,不允许空格。我想允许空格,字母和数字。和句点(.) 和短划线(-)

请帮帮我吗?提前致谢。


答案 1

preg_match('/^[a-z0-9 .\-]+$/i', $firstname)

答案 2

如果您不仅希望允许 ASCII,请使用 Unicode 属性

preg_match('/^[\p{L}\p{N} .-]+$/', $firstname)

\p{L}是任何语言中的任何字母,也匹配中文,希伯来语,阿拉伯语,...字符。

\p{N}任何类型的数字字符(也表示例如罗马数字)

如果要限制为数字,请使用\p{Nd}


推荐