我在玩正则表达式,注意到下面的代码正在返回true。有谁能解释原因吗?
console.log(/\d{4,12}$/.test('12345678901234567890'));
我如何在正则表达式中有有限的数字,例如,4-8(数字数)和一些字母?前('abc7896‘-> true,'a78b96’-> true,等等)
发布于 2017-06-16 20:22:24
根据您在问题中的评论和编辑,您可以使用以下正则表达式:
/^(?:[a-z]*\d){4,8}[a-z]*$/gimRegEx分手:
^ - Start
(?: - Start non-capturing group
[a-z]*\d - Match 0 or more alphabets followed by a digit
){4,8} - End non-capturing group. [4,8} matches it 4 to 8 times
[a-z]* - Match trailing 0 or more alphabets in input
$ - End旗帜:
g - Global search
i - Ignore case Match
m - Multiline mode发布于 2017-06-16 20:07:18
\d{4,12}检查字符串是否包含4到12位数字,这是正确的。如果要限制这一点,可以使用锚定标记- ^作为开始,$用于字符串的末尾,如下所示:
^\d{4,12}$或分别为/^\d{4,12}$/
现在,从字符串的开头到结尾,只能出现4到12个字符。
发布于 2017-06-16 20:07:34
您应该在模式的开头和结尾使用^和$字符。这样做,您就可以声明您正在寻找一个以数字开头的字符串,该字符串可以有从4到12的任意数字。
https://stackoverflow.com/questions/44597138
复制相似问题