[英]JavaScript URL Compare with WildCard
Hey guys I have a project where I need to trigger a function on specific pages. 大家好,我有一个项目需要在特定页面上触发功能。
Users would input something like: 用户将输入如下内容:
var dexiTriggerPages = "/user/*/register, /user/*/pay";
If the current url matches the wildcard url, the function should trigger a conversion. 如果当前网址与通配符网址匹配,则该函数应触发转换。 The url can't contain another path after the given paths.
网址不能在给定路径之后包含其他路径。 Currently my current code is not working at all.
目前,我当前的代码根本无法正常工作。
// 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();
}
}
}
}
Any help on getting this to work would be greatly appreciated! 任何帮助使此工作正常进行,将不胜感激!
Would you be willing to use regular expression to do this? 您愿意使用正则表达式来做到这一点吗?
(^/user/(.*)/register$|^/user/(.*)/pay$)
You can test it out on this website 您可以在此网站上进行测试
I was able to solve the problem by using the following: 我可以使用以下方法解决问题:
// 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();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.