昨天'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>
Run Code Online (Sandbox Code Playgroud)
现在我有一个新的问题/问题/ point_of_confusion.如果我将'example.com'更改为不匹配,则整个脚本将停止.我想知道一个解决方案,然后尝试/ catch,允许脚本继续前进.(虽然,我用try/catch攻击修复,插入try catch /打破更大的脚本......我不知道为什么.这就是为什么我想要一个不包含try/catch的解决方案).我还想尝试理解为什么当'match'函数找不到匹配时会发生这种拖拽.
<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>
Run Code Online (Sandbox Code Playgroud)
这是一个简化的版本.在更广泛的脚本中,我使用在大海捞针中找到的针并将其分配给变量.
小智 7
如果没有匹配项,则该.match()方法返回null.当您尝试获取索引[1]时null,会出现错误,暂停脚本.你应该检查一下,例如:
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');
Run Code Online (Sandbox Code Playgroud)