首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript URL与WildCard的比较

JavaScript URL与WildCard的比较
EN

Stack Overflow用户
提问于 2014-01-24 19:05:36
回答 2查看 515关注 0票数 0

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

用户将输入如下内容:

代码语言:javascript
复制
var dexiTriggerPages = "/user/*/register, /user/*/pay";

如果当前url与通配符url匹配,则函数应触发转换。url不能包含给定路径之后的另一个路径。目前,我的当前代码根本无法工作。

代码语言:javascript
复制
// 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();
            }
        }
    }
}

任何帮助,使这一工作将是非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-24 19:50:04

我能够通过以下方法解决这个问题:

代码语言:javascript
复制
// 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();
        }

    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-01-24 19:28:17

您愿意使用正则表达式来完成这个任务吗?

代码语言:javascript
复制
(^/user/(.*)/register$|^/user/(.*)/pay$)

您可以在本网站上测试它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21340448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档