试图让用户使用其他语言的特殊字符,如西班牙语或法语。我最初有这样的想法:
"/[^A-Za-z0-9\.\_\- ]/i"
然后把它改成
"/[^\p{L}\p{N}\.\_\-\(\) ]/i"
但还是没用。应该允许使用“i”这样的字母。谢谢。
修订:我发现在开始时添加一个(*UTF8 8)有助于解决问题。因此,我使用以下代码:“/(*UTF8 8)^p{L}A-Za-Z0-9._- /i”
修订:在查看了答案之后,我决定使用"/^\p{Xwd}. -/u“。谢谢(即使用中文字母表也行。)
发布于 2014-02-26 20:47:10
对于拉丁语,您可以使用\p{Latin}
字符类:
/[^\p{Latin}0-9._ -]/u
但如果你想要所有其他字母和数字:
/[^\p{Xwd}. -]/u
"u“修饰符表示字符串必须作为unicode字符串读取。
发布于 2014-02-26 20:42:09
您还可以考虑指定一个unicode范围,即。[\w\u00C0-\u024F.-]+
包括拉丁文扩展字母。但是,很难将汉字限制在如此广泛的子集上,那么汉语、越南语等呢?我和大根在这件事上-最好允许任何事。
https://stackoverflow.com/questions/22052517
复制相似问题