JavaScript URL与通配符的比较

JavaScript URL与通配符的比较,javascript,jquery,Javascript,Jquery,嘿,伙计们,我有一个项目,我需要在特定页面上触发一个函数 用户将输入以下内容: var dexiTriggerPages = "/user/*/register, /user/*/pay"; 如果当前url与通配符url匹配,则函数应触发转换。url不能包含给定路径之后的其他路径。目前我的当前代码根本不起作用 // Trigger Conversions for Specific Pages if(dexiTriggerPages.trim() != '') { var urls =

嘿,伙计们,我有一个项目,我需要在特定页面上触发一个函数

用户将输入以下内容:

var dexiTriggerPages = "/user/*/register, /user/*/pay";
如果当前url与通配符url匹配,则函数应触发转换。url不能包含给定路径之后的其他路径。目前我的当前代码根本不起作用

// Trigger Conversions for Specific Pages
if(dexiTriggerPages.trim() != '')
{
    var urls = document.deximedia.explode(',',dexiTriggerPages);

    for (var i=0;i<urls.length;i++)
    { 
        var url = urls[i];
        if(url.indexOf("*") != -1)
        {
            var pass = true;

            var segments = document.deximedia.explode('*',url); 
            for (var i=0;i<segments.length;i++)
            { 
                if(document.URL.indexOf(segments[i]) == -1)
                {
                    pass = false;
                }
            }
            if(pass)
                document.deximedia.dexiTriggerConversion();
        }
        else
        {
            if(document.URL.indexOf(url) != -1)
            {
                document.deximedia.dexiTriggerConversion();
            }
        }
    }
}
//特定页面的触发器转换
如果(dexiTriggerPages.trim()!=“”)
{
var url=document.deximedia.explode(“,”,dexiTriggerPages);

对于(var i=0;i您愿意使用正则表达式来实现这一点吗

(^/user/(.*)/register$|^/user/(.*)/pay$)

您可以在

上进行测试。我可以使用以下方法解决此问题:

// Trigger Conversions for Specific Pages
if(dexiTriggerPages.trim() != '')
{
    var urls = document.deximedia.explode(',',dexiTriggerPages);
    var pathArray = document.deximedia.explode('/',window.location.pathname.replace(/^\/|\/$/g, ''));

    for (var i=0;i<urls.length;i++)
    { 
        var url = urls[i].trim().replace(/^\/|\/$/g, '');
        var urlPaths = document.deximedia.explode('/',url);
        if(pathArray.length == urlPaths.length)
        {
            var pass = true;
            for (var a=0;a<pathArray.length;a++)
            {
                if(pathArray[a] != urlPaths[a] && urlPaths[a] != '*')
                    pass = false;
            }
            if(pass == true)
                document.deximedia.dexiTriggerConversion();
        }

    }
}
//特定页面的触发器转换
如果(dexiTriggerPages.trim()!=“”)
{
var url=document.deximedia.explode(“,”,dexiTriggerPages);
var pathArray=document.deximedia.explode('/',window.location.pathname.replace(/^\/\\/$/g',);

对于(var i=0;使用正则表达式的问题是,用户输入的url模板可以是任何内容。