18

我想禁止某些 UTF-8 输入(服务器端),例如东方语言,其中示例输入可能是“伊”。

但是,我确实想继续支持其他拉丁语或“类似拉丁语”的字符,例如威尔士语 ŵ 和 ŷ,因此无法检查 latin-1

我有哪些选择?(如果特定于语言,首选 PHP)

非常感谢。


推理:经常缺少对许多非西方字符的浏览器支持(例如,在不同的浏览器上,我只在上面的问题中看到一个框),因此对于显示名称之类的事情,有时即使它不适合限制它也是合适的消息体

4

1 回答 1

39

做就是了

preg_match('/[^\\p{Common}\\p{Latin}]/u', $string)

哪里$string是 UTF-8 字符串。如果有非拉丁字符,这将返回“1”,否则将返回“0”。

例子:

var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷaás??'));  //int(0)
var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷݤaás??')); //int(1)
于 2010-08-05T03:42:28.143 回答