js的正则表达式,值必须是由数字和字母两部分组成,怎么写,百度上搜的都是数字或字母组成的
// 只能使数字和字母
var reg = /^[^\d]*$|^[^a-zA-Z]*$|[^\da-zA-Z]/
var str = "12345";
if (reg.test(str)) {
console.log("值必需由数字和字母两部分组成");
throw new Error("值必需由数字和字母两部分组成");
}
注意以上正则匹配成功,代表值不合法
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答775 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
这个单条其实比较麻烦,其实配合一下判断就简单
比如先测试是否只由数字或字母组成,然后再分别测试是否同时包含数字和字母,即可判断啦。
/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/
,左右这个可以试一试,还可以确定位数,比如/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/
是要求8-20位,只能由字母和数字,且同时包含字母和数字其中
(?![0-9]+$)
预测该位置后面不全是数字(?![a-zA-Z]+$)
预测该位置后面不全是字母