当网站在网址中有/category
或/blog
时,我正在尝试将css添加到div中。
遵循我的代码:
var expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
var regex = new RegExp(expression);
var paths = ['/blog', '/category'];
for (i = 0; i < paths.length; i++) {
if (paths[i].match(regex) )
{
console.log("Successful match");
$('.page-title').css('bottom', '-100px');
} else {
console.log("No match");
}
}
问题是这总是返回false,似乎没有得到/blog
或/category
我只需要将这两个部分放在url中时放入css,我认为这个正则表达式是错误或缺少什么,有人可以帮忙吗?
答案 0 :(得分:1)
Regex看起来会匹配一个完整的URL ...而不是像你在这里做的那样。此外,此代码中没有引用您当前页面的位置。
这样的事情应该有效:
if (location.href.match(/\/(blog|category)/)) {
console.log("Successful match");
$('.page-title').css('bottom', '-100px');
} else {
console.log("No match");
}
答案 1 :(得分:1)
此正则表达式验证阵列上的字符串是否格式为xxxxx.yyyy / zzzzz。而且他们都没有。
此外......即使字符串符合预期格式,您也可以传递所有有效的URL,而不是仅传递您想要的URL(博客和类别)。
请注意,您并未在任何地方验证实际网址。
也许你想要的是:
var url = window.location.href;
var paths = ['/blog','/category']
for (i = 0; i < paths.length; i++) {
if (url.indexOf(paths[i]) > 0){
console.log("Successful match");
$('.page-title').css('bottom', '-100px');
} else {
console.log("No match");
}
}