Javascript括号中的正则表达式

Javascript括号中的正则表达式,javascript,regex,Javascript,Regex,我正在使用正则表达式进行一些检查 <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 coo

我正在使用正则表达式进行一些检查

<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>

结果很好。我查看了W3schools和regexr.com,但仍然不知道它

您的正则表达式包含一个捕获组,用括号表示
match
返回一个结果数组,其中第一项是整个匹配项,后续条目是捕获的组。在这种情况下,组是整个正则表达式,因此重复
hat

如果删除捕获组,您将获得一个条目:

var str = "That's cool!";
var patt1 = /h.t/;
var result = str.match(patt1); // ["hat"]
或者,如果我们稍微扩展正则表达式以进一步显示行为:

var str = "That's cool!";
var patt1 = /T(h.t)/;
var result = str.match(patt1); // ["That", "hat"]

我们看到整场比赛是第一场比赛,接下来是抓捕组。

非常感谢。我现在明白这个概念了。所以这意味着如果var patt1=/((h.t))/它应该[“hat”,“hat”,“hat”]@wingdf1000是的,尽管我不确定这种嵌套模式在实践中会有多大用处:)
var str = "That's cool!";
var patt1 = /T(h.t)/;
var result = str.match(patt1); // ["That", "hat"]