我想禁止某些UTF-8输入(服务器端),例如东方语言,例如输入可能是“伊”。
但是,我确实想继续支持其他拉丁语或“拉丁语”字符,例如威尔士语ŵ和ŷ,所以checking against latin-1 is not possible。
我有什么选择? (如果语言特定,PHP首选)
非常感谢。
推理:很多非西方角色的浏览器支持经常丢失(例如在不同的浏览器上我只看到上面问题中的一个框),所以对于像显示名称这样的东西,有时候限制它是合适的,即使它是不适合邮件正文
答案 0 :(得分:33)
只做
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)