我对这个错误嗤之以鼻,所以我希望有人可以指出我哪里出错了。
此函数应使用新值替换查询字符串中的参数值:
function ReplaceParameter(querystring, key, value) {
var myregexp = new RegExp("(?<="+key+"=).+(?=&)", "i");
return querystring.replace(myregexp, value);
}
示例用法:
var serializedData = "columnsToDisplay=EmployeeId&columnsToDisplay=Name&columnsToDisplay=Birthday&columnsToDisplay=Phone&pageSize=4&columnToSort=EmployeeId&descending=False&page=1&partial=RainbowGridData";
var selectedPage = 17;
serializedData = ReplaceParameter(serializedData, "page", selectedPage);
我收到“Microsoft JScript运行时错误:正则表达式中的语法错误”错误。“在调试此网站时通过visual studio。
有什么想法吗?
感谢。
答案 0 :(得分:4)
我认为JavaScript的正则表达式不支持后置断言。所以试试这个:
function ReplaceParameter(querystring, key, value) {
var myregexp = new RegExp("((?:^|&)"+encodeURIComponent(key)+")=[^&]*", "i");
return querystring.replace(myregexp, "$1="+encodeURIComponent(value));
}