我正在使用正则表达式进行一些检查
<p>Click the button to do a global search for "h.t" in a string.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var str = "That's cool!";
var patt1 = /(h.t)/;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;
}
</script>
输出是帽子,帽子 y仅帽子?
如果将代码更改为
var patt1 = /h.t/;
结果很好。我检查了W3schools和regexr.com,但仍然不知道
答案 0 :(得分:2)
您的正则表达式包含一个捕获组,由括号表示。 ViewPager
返回结果数组,其中第一项是整个匹配,后续条目是捕获的组。在这种情况下,该组是整个正则表达式,因此重复match
。
如果您删除了捕获组,您将获得一个条目:
hat
或者,如果我们稍微扩展正则表达式以进一步显示行为:
var str = "That's cool!";
var patt1 = /h.t/;
var result = str.match(patt1); // ["hat"]
我们看到整个匹配是第一个条目,下一个是捕获组。