/\d{,5}/.test('')
我认为这是件事,但显然不是。为什么一个人会这么想?
答案 0 :(得分:2)
量词{n1,n2}
是一个有效的JavaScript正则表达式量词,它将匹配n1到n2次,包括在内。
但是,{,n}
不表示量词,因为需要最小界限。有关语法产生和规则,请参阅15.10.2.7 Quantifier部分。
以下都介绍了有效的量程量词:
/\d{3,5}/.test('12') // false
/\d{3,5}/.test('1234') // true
/\d{3,5}/.test('123456') // false
另一方面,以下正则表达式不创建量词。相反,生产被解析为文字文本而没有特殊含义:
/a{,5}b/.test('a{,5}b') // true, at least in Chrome and IE
答案 1 :(得分:1)
我认为这是件事,但显然不是。为什么一个人会这么想?
如果你看起来很快,它会欺骗你。但是运营商的实施是不完整的,并且会失败。
以下范围量词/运算符被识别:
{n} Match the preceding exactly n times
{n,} Match the preceding at least n times
{n,m} Match the preceding at least n but not more than m times
{n,}? Match the preceding at least n times, but as few times as possible.
{n,m}? Match the preceding between n and m times, but as few times as possible.
使用操作员时,您必须设置{n
范围,,m}
后面的所有内容都是可选的。
正确使用量词/运算符的示例。
"12345".match(/\d{3}/); // => matches '123'
"12345".match(/\d{5,}/); // => matches '12345', FAILS on 1234
"12345".match(/\d{1,4}/); // => matches '1234'
"12345".match(/\d{2,}?/); // => matches '12'
"12345".match(/\d{2,4}?/); // => matches '12'