gpt4 book ai didi

javascript - 在 jquery 提交函数中分配全局变量并传递给正则表达式函数

转载 作者:行者123 更新时间:2023-12-03 02:32:25 26 4
gpt4 key购买 nike

在提交表单时为全局跟踪变量分配值。

var tracking;

$('.form-inline').submit(function (e) {
e.preventDefault();
tracking = jQuery('input[name="tracking"]').val();
init()
})

执行函数init()

function init() {
Tabletop.init({
key: public_spreadsheet_url,
callback: showInfo,
simpleSheet: true
})
}

启动 showInfo 回调

var zipMatches = "";
function showInfo(data, tabletop) {
alert('Callback initiated..');
for (var i = 0; i < data.length; i++) {
var myRegex = '/' + tracking + '/';
console.log(myRegex)
if (myRegex.test(data[i].tracking)) {
zipMatches = zipMatches + data[i].location_1 + ", " + data[i].location_2 + ", " + data[i].location_3;
}
}
//write it into the DOM
var myElement = document.querySelector(".myJSON");
myElement.innerHTML = "<h3>List of Zipcodes that match tracking ID: </h3><p>" + zipMatches + "</p>";
}

myRegex.test is not a function

但是正则表达式函数可以使用硬编码值

if (/ABCD123/.test(data[i].tracking)) {...

如何将正则表达式值作为全局变量传递?

..

编辑(工作回调函数):

function showInfo(data, tabletop) {
var regexp = new RegExp(tracking);
for (var i = 0; i < data.length; i++) {
if (regexp.test(data[i].tracking)) {
zipMatches = zipMatches + data[i].location_1 + ", " + data[i].location_2 + ", " + data[i].location_3;
}
}..

最佳答案

请尝试使用以下解决方案:

var regexp = new RegExp(tracking);

请把它放在for循环之外。所以就优化了。

既然你已经尝试过了 var regexp = "/"+ Tracking + "/"; 将其转换为字符串。不是正则表达式对象。所以你不会在其中获得测试方法。

希望有帮助:)

关于javascript - 在 jquery 提交函数中分配全局变量并传递给正则表达式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677539/

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