求一个正则表达式,要求由数字和字母或者数字和特殊符号组成

2025-01-02 05:43:34
推荐回答(2个)
回答1:

首先,要明确允许那些特殊符号,及白名单。

下面代码中 [!@#$%^&*]替换成你的特殊字符。

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, 数字和英文

回答2:

^[\da-zA-Z!@#$%^&*]*$