gpt4 book ai didi

JavaScript 匹配函数似乎停止了脚本

转载 作者:行者123 更新时间:2023-12-03 17:53:34 25 4
gpt4 key购买 nike

昨天“Hnatt”好心地提供了这个脚本的正则表达式部分:

<html>
<body>
<script type="text/javascript">
alert("hhhhhh yadad example.com/check?x=asdfasdf bsss ffhhh".match(/example.com\/check\?x\=([^\s]*)/)[1]);
alert('alert 2');
</script>
</body>
</html>

现在我有一个新的问题/问题/point_of_confusion。如果我将“example.com”更改为匹配,整个脚本将停止。我想知道除了 try/catch 之外的解决方案,它允许脚本继续前进。 (虽然,我用 try/catch 破解了一个修复程序,插入一个 try catch/breaks 更大的脚本……我不知道为什么。这就是为什么我想要一个不包含 try/catch 的解决方案的原因)。我还想尝试理解为什么当“匹配”函数找不到匹配项时会发生这种暂停。

<html>
<body>
<script type="text/javascript">
alert("hhhhhh yadad exampleTwo.com/check?x=asdfasdf bsss ffhhh".match(/example.com\/check\?x\=([^\s]*)/)[1]);
alert('alert 2');
</script>
</body>
</html>

这是一个精简版。在更广泛的脚本中,我使用大海捞针并将其分配给一个变量。

最佳答案

当没有匹配项时,.match() 方法返回 null。当您尝试获取 null 的索引 [1] 时,出现错误,导致脚本停止。您应该检查一下,例如:

var match = "hhhhhh   yadad   exampleTwo.com/check?x=asdfasdf bsss ffhhh".match(/example.com\/check\?x\=([^\s]*)/);
if (match) {
alert(match[1]);
}
alert('alert 2');

关于JavaScript 匹配函数似乎停止了脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725921/

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