【问题标题】:Checking if string contains number and symbol检查字符串是否包含数字和符号
【发布时间】:2014-08-27 07:49:46
【问题描述】:

我正在为一所大学创建一个帐户创建网站。

我的问题是,如果用户设置的密码不包含数字和/或符号,我想返回错误消息,我需要帮助。

密码需要包含大小写字母、数字和符号(!、#、% 或 &)。我需要具体的错误消息。

有什么建议吗?我正在使用 HTML 和 JS。

【问题讨论】:

    标签: javascript html ezpublish


    【解决方案1】:

    我建议使用正则表达式并检查每个

    像这样:

    function validateStr(str) {
        var regex = new RegExp("[A-Z]+"); // Check for uppercase first   
        if(regex.test(str) == true) {
            regex = new RegExp("[0-9]+"); // Now we check for numbers   
            if(regex.test(str) == true) {
                regex = new RegExp("[a-z]+"); // checking now for lowercase
                if(regex.test(str) == true) {
                    return 1;   
                } else return 2;
            } else return 3;
        } else return 4;
    }
    

    我没有包含“特殊字符”参数,因为您必须将它们单独包含在一个正则表达式中,我不建议您这样做。 我正在努力让它在 JSFiddle 上工作,所以我没有包含一个,但如果您需要我进一步解释,请发表评论。

    【讨论】:

    • 我这样做是为了让您可以根据需要使用它为用户指定特定的错误文本。
    • 这很有帮助,谢谢。我可以摆弄一下,看看我是否可以自己包含特殊字符编辑。
    【解决方案2】:

    虽然基于 JS 和 regexp 的解决方案是一个好的开始(而且速度更快,因为在客户端执行),但我建议仔细检查这个服务器端。

    由于我看到您可能正在使用 eZ Publish(基于此问题的标签...),请随意覆盖 eZUser 类(使用 eZ Publish 自动加载系统或 PHP 包含路径魔术),然后破解 eZUser ::validatePassword() 方法来满足您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-27
      • 2017-11-02
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      相关资源
      最近更新 更多