获取参数值的Javascript正则表达式

获取参数值的Javascript正则表达式,javascript,regex,params,Javascript,Regex,Params,我正在处理其他人构建的代码库,搜索函数使用它从url获取参数,并将其作为要搜索的值。我尝试过重新编写它,修改它,以及其他一切可能的操作,但无法从函数中找出reutrn值的情况 下面是函数 function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); console.log(name); var regex = new RegExp("[\\?&a

我正在处理其他人构建的代码库,搜索函数使用它从url获取参数,并将其作为要搜索的值。我尝试过重新编写它,修改它,以及其他一切可能的操作,但无法从函数中找出reutrn值的情况

下面是函数

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

var part = getParameterByName('part_name');
location.search的值是
?零件号=1234&go=go

然后在输入框
part_name
中,如果输入1234作为传入参数的值,则只显示12。然而,输入其他随机数有时会正确显示它们。如果我键入124作为搜索参数,那么它将正确显示为搜索124

这些regex语句中是否有可能导致这种情况的错误,或者这是服务器端的问题?PHP在后端看起来不错,但我对Javascript代码中使用的正则表达式不太了解

编辑

测试片段:

函数getParameterByName(loc,name){ name=name.replace(/[\[]/,“\\[”)。replace(/[\]]/,“\\]”); document.getElementById(“res”).innerHTML+=“Name:”+Name+“-”; var regex=new RegExp(“[\\?&\\]”+name+“=([^&\\]*)”, 结果=regex.exec(loc); document.getElementById(“res”).innerHTML+=results+“
”; 返回结果==null?”:decodeURIComponent(结果[1]。替换(/\+/g,”); } var part=getParameterByName(“?part_number=1234&go=go”,“part_number”); var part2=getParameterByName(“?part_name=12&go=go”,“part_name”)
请提供
位置。搜索
名称
值。什么是
1234
?名字?那么,位置是什么?很抱歉再次编辑,但请检查:所有数字都获得正确:对于
零件号
,返回
1234
,对于
零件名
,返回的是
12