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