我试图让这个东西在我接受所有unicode字母的地方工作,所以可以覆盖来自世界各地的乌尔都语和其他特殊字母等语言。
试过这个:
/^[\p{L}\p{Zs}\p{N}]+$/uix
但它让我不知道我做错了什么?甚至尝试了一些正则表达式工具,只是无法以任何方式使用它。
有了它的工作我发现这是我的捣乱结果,但使用$ _POST与preg_match是否安全?
!preg_match("/^[\\p{L}\\p{Zs}\\p{N}\\p{M}]+$/u", $_POST['firstname'])
答案 0 :(得分:1)
您可以使用
'/^[\p{L}\p{M}\p{Zs}\p{N}]+$/u'
请注意,乌尔都语和许多其他语言都有变音符号,而\p{M}
与它们匹配。
使用单引号文字时,不需要加倍反斜杠。
使用POST,您似乎只需要确保设置了值并使用字符串。
if ( isset( $_POST[ 'firstname' ] ) ) {
$name = strip_tags( trim( $_POST[ 'firstname' ] ) );
}
请参阅this article。