我正在研究一个简单的密码验证器,想知道它是否可以用正则表达式或...除了单独检查每个字符之外还有什么。
基本上,如果用户输入类似“aaaaaaaaa1aaaaa”的内容,我想让用户知道不允许使用字符“1”(这是一个 super 简单的示例)。
我正在努力避免类似的事情
if(value.indexOf('@') {}
if(value.indexOf('#') {}
if(value.indexOf('\') {}
也许是这样的:
if(/[^A-Za-z0-9]/.exec(value) {}
有什么帮助吗?
最佳答案
如果你只是想检查字符串是否有效,你可以使用RegExp.test()
- 这比 exec()
更有效,因为它会在找到第一次出现时返回 true:
var value = "abc$de%f";
// checks if value contains any invalid character
if(/[^A-Za-z0-9]/.test(value)) {
alert('invalid');
}
如果你想找出哪些字符无效你需要使用String.match()
:
var value = "abc$de%f";
var invalidChars = value.match(/[^A-Za-z0-9]/g);
alert('The following characters are invalid: ' + invalidChars.join(''));
关于javascript - 确定字符串是否有任何不在字符列表中的字符,如果有,哪些字符不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974244/