簡體   English   中英

在jquery Submit函數內分配全局變量並傳遞給regex函數

[英]Assign global variable inside jquery submit function and pass to regex function

在提交表單時向全局跟蹤變量分配值。

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不是函數

但是正則表達式功能可以使用硬編碼值

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);

並將其放在forloop之外。 因此它是優化的。

由於您已經嘗試過var regexp = "/" + tracking + "/"; 將其轉換為字符串。 不是正則表達式對象。 因此,您將無法獲得測試方法。

希望能幫助到你 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM