如何在PHP中处理非拉丁语脚本输入的验证?

时间:2011-06-26 23:53:40

标签: php regex unicode

我正在尝试使用php应用程序来处理非拉丁语脚本(特别是:日语,简体中文和阿拉伯语)。应用程序的数据验证例程经常使用正则表达式来检查输入,但我不确定如何在不在系统上安装其他语言环境的情况下将\ w字符类型调整为其他语言(我不能依赖它)。

以前在应用程序上工作过的开发人员只需在正则表达式中添加所需的字符,因为我们支持的语言数量增长了(您经常在代码中看到“[\wÀÁÂÃÄÅÆÇÈÉ... etc”),但我不能我现在需要支持的所有字母表都是这样做的。

有没有人对如何解决这个问题有一些建议?

1 个答案:

答案 0 :(得分:2)

在php.net上查看此评论:http://www.php.net/manual/en/regexp.reference.unicode.php#102756

例如:

//$string may only contain arabic letters
preg_match('@^\p{Arabic}+$@u',$string);

//$string may only contain cyrillic letters
preg_match('@^\p{Cyrillic}+$@u',$string);

//$string may contain word-characters and greek
preg_match('@^[\p{Greek}\w]+$@u',$str);

......等等

演示:http://cecb.freephptest.com/