gpt4 book ai didi

javascript - "Cannot read property ' 匹配 ' of null"

转载 作者:行者123 更新时间:2023-12-02 14:24:49 24 4
gpt4 key购买 nike

我有那个脚本:

function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var dynamicContent = getParameterByName('utm_term');

$(document).ready(function() {

if (dynamicContent.match(/buy/i)) {
$('#buy').show();
}

else {
$('#default-content').show();
}
});

当 url 中有任何参数时,它工作正常,否则工作正常,显示 #deafult-content。

问题是,当我有干净的 url 且没有参数 #default-content 时,不会显示,因为“无法读取 null 的属性‘匹配’”。

知道如何解决这个问题吗?

最佳答案

您正在为 !results 返回 null,然后您就无法匹配

尝试结合您的两个检查并返回一个空字符串:-

function getParameterByName(name, url) {

if (!url)
url = window.location.href;

name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);

if (!results || !results[2])
return '';

return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var dynamicContent = getParameterByName('utm_term');

$(document).ready(function() {

if (dynamicContent.match(/buy/i)) {
$('#buy').show();
} else {
$('#default-content').show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p id="default-content" style="display:none;">test</p>

关于javascript - "Cannot read property ' 匹配 ' of null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38367397/

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