希望能快速回答这个问题 我有一个字符串,我正在尝试匹配第一个两个数字
var str = "aasd10aaaa";
之后我想确保前两位数字后的每个字符都是字母字符a-z
这是我到目前为止所拥有的
var str = "aasd10aaaa";
var testIt = /[0-9]{2}[a-z]+/i
var test = testIt.test(str)
但是如果我的字符串是
var str = "aasd101aaa";
然而,当我测试上面的字符串时,它仍然返回true,即使它不应该因为我只希望reg ex匹配前两个数字;在前两位数后,它应该是所有字母字符。我是新手,无法弄明白;一如往常任何帮助表示赞赏
答案 0 :(得分:6)
var testIt = /^[^0-9]*?[0-9]{2}[a-zA-Z]+$/;
[^0-9]*?
任何不包含数字的内容
[0-9]{2}
两位数
[a-zA-Z]+
在两个数字都是单词字符后检查字符。
答案 1 :(得分:3)
你需要这个:
var testIt = /(?:\D)\d{2}[a-z]+/i
\D
表示不是数字,如果您只是限制为a-z
,请使用[a-z]
。
(?:\D)
表示匹配非数字字符,但不匹配组。