我需要验证一个字符串,该字符串可以包含任意数量的字符、一个逗号,然后是 2 个字符。我有一些问题。这是我所拥有的:
var str="ab,cdf";
var patt1=new RegExp("[A-z]{2,}[,][A-z]{2}");
if(patt1.test(str)) {
alert("true");
}
else {
alert("false");
}
我希望这会返回 false,因为我{2}
对逗号后面的字符有限制,并且这个字符串有三个字符。但是,当我运行fiddle时,它返回 true。我(诚然有限)对 RegExp 的理解表明它{2,}
至少是 2,并且{2}
正好是 2,所以我不确定为什么逗号后面的三个字符仍然返回 true。
我还需要能够忽略逗号和其余两个字符之间可能存在的空格。(换句话说,如果逗号之前有 2+ 个字符,逗号之后有 2 个字符,我希望它返回 true - 之后的两个字符不包括用户可能输入的任何空格。)
所以所有这些都应该返回 true:
var str = "ab, cd";
var str = "abc, cd";
var str = "ab,cd";
var str = "abc,dc";
我尝试\S
在逗号后添加指示符,如下所示:
var patt1=new RegExp("[A-z]{2,}[,]\S[A-z]{2}");
但随后字符串始终返回 false,即使我将其设置为ab, cd
,它也应该返回 true。
我错过了什么?