如何为location.href.match创建更具体的URL?

时间:2014-09-05 04:45:50

标签: javascript

我正在使用一系列if语句来使用以下内容在论坛上操作css:

if(location.href.match(/(showforum=3)/i) != null) {
$(document).ready(function(){
$("#topimg").addClass("announce");
});}

代码工作得很好,但是以3开头的每个其他showforum都会显示此图像,除非我对其进行编码。所以我的问题是如何使我的位置更精确,以便它只更改为3而不是3x?甚至可以使用这种编码吗?

2 个答案:

答案 0 :(得分:1)

更改正则表达式,以便"值的边界"也被检查:

var pattern = /showforum=3(?=&|$)/i;
if (pattern.test(location.href)) {
  ...
}

请注意测试表达式中随附的更改:如果您只需要查明某些字符串是否与模式匹配,则应使用regexp.test(string)语法,而不是string.match(regexp) !== null

答案 1 :(得分:0)

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

if( getParameterByName("showforum") == 3 ){
    //........

}

参考

How can I get query string values in JavaScript?