0

我有要验证的 HTML 表单输入。输入应仅使用 Unicode(波斯)字母和数字,仅此而已。我用preg_match这样的:

preg_match('/^[آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئءًٌٍَُِّ\s]+$/u',$input);

它在 localhost 上运行良好,但由于我的主机没有安装 Unicode 支持的 PCRE,我不会要求他们为我安装它,我正在寻找另一种工作方式来实现这一点。

有什么方法可以在不使用preg_match()函数的情况下验证 unicode 输入?

重复标志

根据重复标志,我不是在 PCRE 之后,'preg_match' 方式。链接的问题是 PCRE 'preg_match' 方式。

4

1 回答 1

1

当 PCRE 未使用标志编译时,您可能会受益于一些特定的多字节函数:PCRE_UTF8

mb_regex_encoding('UTF-8');
var_dump(mb_ereg('^[آ-یء\s]+$', "سلام پارسی تست می کنیم آإأابپتثجچحخدذرزژسشصضطظعغفقکگلمنهۀةوؤیيئًٌٍَُِّ"));
// int(1)

这里آ-ی的字符范围包括比波斯语更多的字符(实际上U+0622- U+06CC,请查看相应的Unicode 表)还请注意,没有指定分隔符。

于 2016-08-12T10:31:43.447 回答