Javascript密码不应包含用户的帐户名称或超过两个连续字符的用户全名部分

时间:2012-08-06 20:25:13

标签: javascript jquery regex passwords

我需要实施客户端密码验证,以便密码不应包含用户的帐户名称或超过两个连续字符的用户全名部分。

我在客户端公开了用户名和全名。但到目前为止,我无法弄清楚正则表达式或任何其他方法在客户端实施。

示例

username: test20@xyz.com
password: Usertest123 --> this should fail the validation since it contains "test" in both password and username.

1 个答案:

答案 0 :(得分:3)

我只能想到这个:

var name = "test20@xyz", password = "usertest123"

var partsOfThreeLetters = name.match(/.{3}/g).concat(
                           name.substr(1).match(/.{3}/g),
                           name.substr(2).match(/.{3}/g) );
new RegExp(partsOfThreeLetters.join("|"), "i").test(password); // true

但我不认为正则表达式是适当的工具,因为它需要转义等等。您最好使用简单的substr / indexOf算法(请参阅JavaScript case insensitive string comparisonHow to check whether a string contains a substring in JavaScript?)。