【问题标题】:How to validate unicode characters?如何验证 unicode 字符?
【发布时间】:2010-04-23 05:15:04
【问题描述】:

我有一个注册表单,我不希望人们使用 unicode 字符注册登录用户名。我如何放置服务器端验证 PHP + 客户端验证 javascript 或 jquery。

请帮帮我。谢谢。

【问题讨论】:

    标签: php jquery validation unicode forms


    【解决方案1】:

    你的意思是超出正常的 ASCII 范围吗?

    您可以实现网上流传的众多seemsLikeUtf8() 函数之一。

    或者做一个快速的正则表达式

    if ( ! preg_match('/^[a-z0-9-]+$/i', $username)) {
       echo 'error';
    }
    

    【讨论】:

    • 不确定您是否意识到这一点,但该模式实际上不允许使用 UTF-8 字符。
    • @Peter OP 想阻止人们使用我认为的非标准字符进行注册。我不是 UTF-8 方面的专家(虽然正在学习),所以请随时为我指明正确的方向 :)
    • 哇,我设法完全掩盖了他问题中的“不要”。无论如何,为了记录,PCRE 模式可以通过u 标志(小 u,不是大 U)使 UTF-8 感知
    • @Peter 谢谢,我不知道有小 u 标志。只知道默认的非贪婪U。为您的评论 +1,因为我学到了一些东西:)
    【解决方案2】:

    一个简单的正则表达式就可以了:

    if (!username.match(/^[a-zA-Z0-9_+]+$)) {
       alert("invalid username");
    }
    

    这将检查用户名是否仅包含字符 a-z(大写和小写)、数字 0-9、“_”和“+”。如果你想扩展它以允许其他字符,你只需要查找更多关于 regular expressions 的信息。

    在服务器端,你会做同样的事情,因为 PHP 也支持regular expressions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多