我是妄想,还是 JS 正则表达式支持可选的重复边界
Am I delusional, or does JS RegExp support optional repetition bounds?
/'d{,5}/.test('')
我以为这是一回事,但显然不是。一个人为什么会这么想?
量词{n1,n2}
是一个有效的 JavaScript 正则表达式量词,它将匹配 n1 到 n2 次(包括 n1 到 n2 次(。
但是,{,n}
并不表示量词,因为需要最小界限。有关语法生产和规则,请参见第 15.10.2.7 节量词。
以下都介绍了有效的范围量词:
/'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
我以为这是一回事,但显然不是。一个人为什么会这么想?
如果你看得很快,它确实欺骗了你。但是算子的实现是不完整的,会失败。
可识别以下范围量词/运算符:
{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'
相关文章:
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- jQuery检测浏览器是否支持Zoom
- 错误:对象没有't支持'自动完成'
- EmberJS中支持单字母单词模型
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- Internet Explorer缺少占位符支持,特别是密码字段
- 为什么我得到错误IE修剪方法是't支持
- 任何浏览器都不支持javascript函数
- GTK百老汇支持同时连接
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- 上传带有XMLHttprequest的文件-多部分/表单数据中缺少边界
- Javascript Q库浏览器支持
- 您的平台不支持RxJS-Array.observe
- React Native当前是否支持访问用户'的通讯簿
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- Excellen导出xlsx支持
- 我是妄想,还是 JS 正则表达式支持可选的重复边界