正则表达式 包含一个字符,不包含另一个字符

比如一个字符串,一定要包含a,一定不能包含b。

第1个回答  2014-07-09
^(?=.*(a))(?!.*(b)).+$
或者
^[^b]*a[^b]*$追问

.*a(?!.*(b)).*
我们之前是这样验证的,但是这样只能验证字符a在b前面,如果字符b在a前面则不行。
能不能针对之前的这种格式稍加改动呢?多谢了!

追答

(?!.*(b)).*a.*
干脆这样最方便
^[^b]*a[^b]*$

第2个回答  2015-11-15
var reg = /^[^b]*a[^b]*$/;
var str = "bcd";
console.log(reg.test(str));

第3个回答  2014-07-09
做两次正则判断
a匹配成功,b匹配失败即符合要求
或者用如下一个正则
(?!.*b)a本回答被网友采纳
相似回答