我正试图使正则表达式符合以下条件case
:
我基本上想匹配一个网址 news/asdd-asdadas-assas.aspx
我有其他的URL匹配为导航添加一个活动的类。这些网址是通过页面路由生成的。
我一直在做 var pathName = window.location.pathname;
var re = "/[^news][\w\W]+/";
switch (pathName) {
case "/":
$('#home-active').addClass('active');
break;
case "/about-us.aspx":
$('#about-active').addClass('active');
break;
等等 ..
但我想这样做:
case "/news"+re:
$('#news-active').addClass('active');
break;
我尝试了许多不同的Regex,我用正确的方式case
吗?
如何通过串联re
变量来匹配网址
那不是在中使用regex的正确方法Javascript
。正则表达式匹配返回true / false。这意味着在您的案例陈述中,您最终会得到类似
pathName === pathName.match(re)
转化为
pathName === true
或者 pathName === false
这可能实际上评估,如果pathName
不是null
或者undefined
,但几乎可以肯定不会导致的行为,你期待。
编辑:它看起来根据像这种由@JonathanM提供的参考,该case语句时,参数传递到交换机的计算结果为true或false几乎肯定不会评价。
您是否考虑修改您的代码以使用该.match()
方法?
if(pathName.match(re)){
$('#home-active').addClass('active');
}else if(pathName.match(re2)){
$('#about-active').addClass('active');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句