尝试让用户使用其他语言(例如西类牙语或法语)中的特殊字符。我最初有这个:
"/[^A-Za-z0-9\.\_\- ]/i"
然后改成
"/[^\p{L}\p{N}\.\_\-\(\) ]/i"
但还是不行。应允许使用诸如“ñ”之类的字母。谢谢。
修订: 我发现在开头添加一个 (*UTF8) 有助于解决问题。所以我使用以下代码:"/(*UTF8)[^\p{L}A-Za-z0-9._- ]/i"
修订: 查看答案后,我决定使用:“/[^\p{Xwd}.-]/u”。谢谢(它甚至适用于中文字母表。
最佳答案
对于拉丁语言,您可以使用 \p{Latin}
字符类:
/[^\p{Latin}0-9._ -]/u
但是如果你想要所有其他字母和数字:
/[^\p{Xwd}. -]/u
“u”修饰符表示字符串必须被读取为 unicode 字符串。
关于php - 允许来自任何语言的字母(如 "ñ")的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052517/