我想检查一个字符串在 javascript 中是否严格为字母数字。我试过这个:
var Exp = /^[0-9a-z]+$/;
if(!pwd.match(Exp))
alert("ERROR")
但问题是,如果它包含所有字母或所有数字,它会传递输入字符串,如果它包含字符和数字,我希望函数传递。
原文由 user1504606 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想检查一个字符串在 javascript 中是否严格为字母数字。我试过这个:
var Exp = /^[0-9a-z]+$/;
if(!pwd.match(Exp))
alert("ERROR")
但问题是,如果它包含所有字母或所有数字,它会传递输入字符串,如果它包含字符和数字,我希望函数传递。
原文由 user1504606 发布,翻译遵循 CC BY-SA 4.0 许可协议
在我看来,Felix Kling 的回答是最好的单一正则表达式解决方案,但我会考虑使用三种模式来实现。这允许您返回有用的错误消息:
if(pwd.match(/[^0-9a-z]/i))
alert("Only letters and digits allowed!");
else if(!pwd.match(/\d/))
alert("At least one digit required!");
else if(!pwd.match(/[a-z]/i))
alert("At least one letter required!");
else
// process pwd
不过,您应该考虑允许使用非字母数字字符作为您的密码——这将使它们更加安全。
原文由 Martin Ender 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
试试这个正则表达式:
这只允许字母数字。
它不允许:
参考 现场演示
更新:
下面的正则表达式允许: