【问题标题】:HTML form validation - filtering unicode (Persian) characters in PHP without using preg_match()HTML 表单验证 - 在 PHP 中过滤 unicode(波斯)字符而不使用 preg_match()
【发布时间】:2013-08-28 04:26:12
【问题描述】:

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

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

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

有没有什么方法可以验证 unicode 输入,而不使用 preg_match() 函数?

重复标志

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

【问题讨论】:

    标签: php regex unicode preg-match


    【解决方案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)还要注意没有指定分隔符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多