首先,要明确允许那些特殊符号,及白名单。
下面代码中 [!@#$%^&*]替换成你的特殊字符。
var p=/^(?=.*[0-9])((?=.*[a-z])[0-9a-z]+|(?=.*[!@#$%^&*])[0-9!@#$%^&*]+)$/ig;
var b=p.test("234@#23sdf"); //false, 英文和特殊字符同时存在
var b=p.test("234"); //false, 只有数字
var b=p.test("$#234@#23"); //true, 数字和特殊字符
var b=p.test("sf24da23df"); //true, 数字和英文