如何编写JavaScript函数来过滤URL?

如何编写JavaScript函数来过滤URL?,javascript,arrays,list,tracking,Javascript,Arrays,List,Tracking,我正在尝试用JavaScript(或任何能够使用JavaScript的客户端技术)编写一个函数,以允许根据要跟踪的URL列表测试URL(使用Bing转换跟踪)。我有什么是必需的基础,但我不确定它是如何应用的 var isCorrectPage = false; //loop through list of URLS isCorrectPage = true; if (isCorrectPage) { // enter the bespoke tracking code } 我不确定它检查U

我正在尝试用JavaScript(或任何能够使用JavaScript的客户端技术)编写一个函数,以允许根据要跟踪的URL列表测试URL(使用Bing转换跟踪)。我有什么是必需的基础,但我不确定它是如何应用的

var isCorrectPage = false;
//loop through list of URLS

isCorrectPage = true;

if (isCorrectPage) {
// enter the bespoke tracking code
}
我不确定它检查URL有效性的确切方式,我是否应该循环查看所选URL的列表以进行跟踪

@伊万·内沃斯特鲁耶夫 我想过滤一些类似但页码不同的URL,URL如下:

"/find-enquiry-thanks.aspx?did=62" 
"/find-enquiry thanks.aspx?did=90"
"/find-enquiry thanks.aspx?did=38"
"/future-contact thanks.aspx" 
如果URL=true,那么我会将跟踪附加到该URL。
在VB.net中,可以使用contains()或二进制搜索,但对于JS,我被卡住了。

你的意思是基于当前URL吗?你可能想要这样的东西:

function check(url, paths) {
  return !!paths.find(function (path) {
    return url.indexOf(path) !== -1;
  });
}

var paths = [
  "/find-enquiry-thanks.aspx?did=62",
  "/find-enquiry thanks.aspx?did=90",
  "/find-enquiry thanks.aspx?did=38",
  "/future-contact thanks.aspx",
];

if (check(window.location.href, paths)) {
  //do stuff
}
请注意,
Array.prototype.find
是新的,并非所有浏览器都有它,因此如果您想了解它的功能,您可能需要查看lodash/下划线
。.find
或只是创建一个混乱的for循环,返回:

  function check(url, paths) {
    for (var i = 0; i < paths.length; i++) {
      if (url.indexOf(path) !== -1) {
        return true;
      }
    }
    return false;
   }
功能检查(url、路径){
对于(var i=0;i
尝试以下方法:

(function(){
    var pageUrl = window.location.href;
    var urls = ["/find-enquiry-thanks.aspx?did=62","/find-enquiry-thanks.aspx?did=90","/find-enquiry-thanks.aspx?did=38","/future-contact-thanks.aspx"];

    for (var i = 0; i < urls.length; i++){
        if (pageUrl.indexOf(urls[i]) > 0){
            document.write('valid url');
        }
    }
})();
(函数(){
var pageUrl=window.location.href;
var url=[“/find enquiry thanks.aspx?did=62”、“/find enquiry thanks.aspx?did=90”、“/find enquiry thanks.aspx?did=38”、“/future contact thanks.aspx”];
对于(var i=0;i0){
document.write('有效url');
}
}
})();

您能提供更多URL示例和预期结果吗?请参阅我刚才在上述代码片段中添加的URL。感谢您您询问如何在JS中使用
str.indexOf(“…”)
str.match(regexp)
?你“堆叠”在哪里?我需要它在路径中的项目上循环,并将它们与location.href的小写版本进行比较。然后我将不得不调用trackingcode方法(),不幸的是,我认为我不能使用Array.prototype.find,因为它没有得到足够广泛的支持。我猜我需要在路径中的项上实现一个循环,并将它们与location.href的小写版本进行比较-如果它们匹配,则添加call trackingcode method()。我不知道怎么写出来。我认为它类似于您在上面编写的循环??我不能确定,因为我不知道您现有的代码是什么样子的,但lodash或下划线附带了一个u.find方法,该方法与Array.prototype.find的工作原理相同。你可能想考虑这个问题。我已经尝试了一个.find方法,这似乎也不起作用。如何实现循环?它只需要在路径中的项目上循环,并将它们与location.href的小写版本进行比较。此循环是否允许mer在路径中的项目上循环,并将它们与location.href的小写版本进行比较?然后我将调用trackingcode方法()是。调用您的方法,而不是
document.write('valid url')。您还可以使用
toLowerCase()
string方法来确保url是小写的;我将在函数的哪个部分调用toLowerCase()字符串方法?在检查其是否为有效URL之后还是之前?在检查条件时,可以在两个链接上调用
toLowerCase()
if(pageUrl.toLowerCase().indexOf(URL[i].toLowerCase())>0{