正则表达式[^A-J]和匹配结果
Regular expression [^A-J] and match result
你能解释一下,为什么下一个匹配的输出结果是s
吗?
更新:我认为输出应该是在规则范围字符中匹配的I
。
var str = "Is this enough?";
var patt1 = new RegExp("[^A-J]");
var result = str.match(patt1); // ["s", index: 1, input: "Is this enought?"]
document.getElementById('id').innerHTML = result;
<p id="id"></p>
正则表达式匹配大写A
到大写J
范围之外的任何字符,因此s
是满足该要求的第一个字符。像您这样的正则表达式将匹配搜索字符串中的任何位置。
更清楚地说,字符组表达式开头的^
意味着该组应包括[^ ]
内容所描述的所有字符,而不是。您的范围是A-J
,因此[^A-J]
匹配除A
到J
之外的所有字符。
^
的意思是"匹配不在以下字符集中的字符"。因为您没有指定任何标志,所以它只返回第一个匹配项。第一个匹配是s
,它不在字符A到J的集合中。
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- jQuery使用api获取typeform结果
- 根据条件检查数据库结果
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- Angular,表达式{{}}的结果没有插入到ng-click中
- knex:根据结果创建数组的合适方法是什么