gpt4 book ai didi

javascript - 或者 Regex 的交替返回比它应该的更多的结果?

转载 作者:行者123 更新时间:2023-11-30 09:14:47 24 4
gpt4 key购买 nike

代码修改自https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_regexp_xy .

<p>Click the button to do a global search for any of the specified alternatives (red|green).</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
var str = "re, green, red, green, gren, gr, blue, yellow";
var patt1 = /(blue|red)/;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;
}
</script>

结果是red,red。但是,只有一个 red。为什么返回两个?

最佳答案

因为您在正则表达式中使用了组,所以 match 会返回匹配的字符串和组(因此包含两个相同元素的数组)。使用 /blue|red/g 代替(g 使得 match 将在 findig 第一次匹配后继续搜索)

function myFunction() {
var str = "re, green, red, green, gren, gr, blue, yellow";
var patt1 = /blue|red/g;
var result = str.match(patt1);
demo.innerHTML = result;
}
<p>Click the button to do a global search for any of the specified alternatives (red|green).</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

关于javascript - 或者 Regex 的交替返回比它应该的更多的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55844823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com