我要验证HTML表单输入。输入应该只使用Unicode(波斯语)字母和数字。我像这样使用preg_match
:
preg_match('/^[آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئءًٌٍَُِّ\s]+$/u',$input);
并且它在localhost上工作正常,但由于我的主机没有安装了Unicode支持的PCRE,我不打算让他们为我安装它,我正在寻找另一种工作方式来实现这一点。
有没有办法可以在不使用preg_match()
功能的情况下验证unicode输入?
对于重复标记,我不是在PCRE之后,'preg_match'方式。链接的问题是PCRE'preg_match'方式。
答案 0 :(得分:1)
当PCRE未使用PCRE_UTF8
标志编译时,您可能会受益于某些特定multi-byte functions:
mb_regex_encoding('UTF-8');
var_dump(mb_ereg('^[آ-یء\s]+$', "سلام پارسی تست می کنیم آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئًٌٍَُِّ"));
// int(1)
此处آ-ی
字符范围包含的字符数多于波斯语(实际为U+0622
- U+06CC
,请查看相应的Unicode table)另请注意,未指定分隔符。