我对这个错误一头雾水,所以我希望这里有人能指出我哪里出错了。
此函数应将查询字符串中的参数值替换为新值:
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);
我在调试此网站时通过 visual studio 收到“Microsoft JScript 运行时错误:正则表达式中的语法错误”错误。
有什么想法吗?
谢谢。
最佳答案
我认为 JavaScript 的正则表达式不支持回顾断言。所以试试这个:
function ReplaceParameter(querystring, key, value) {
var myregexp = new RegExp("((?:^|&)"+encodeURIComponent(key)+")=[^&]*", "i");
return querystring.replace(myregexp, "$1="+encodeURIComponent(value));
}
关于javascript - javascript正则表达式中的后视断言语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1125174/