0

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

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

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

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

4

2 回答 2

2

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

像这样:

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 上工作,所以我没有包含一个,但如果您需要我进一步解释,请发表评论。

于 2014-08-27T08:20:15.257 回答
1

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

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

于 2014-08-28T07:44:26.587 回答