我需要实施客户端密码验证,以便密码不应包含用户的帐户名称或超过两个连续字符的用户全名部分。
我在客户端公开了用户名和全名。但到目前为止,我无法弄清楚正则表达式或任何其他方法在客户端实施。
示例
username: test20@xyz.com
password: Usertest123 --> this should fail the validation since it contains "test" in both password and username.
答案 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 comparison, How to check whether a string contains a substring in JavaScript?)。