javascript - javascript正则表达式中的后视断言语法错误

标签 javascript regex

我对这个错误一头雾水,所以我希望这里有人能指出我哪里出错了。

此函数应将查询字符串中的参数值替换为新值:

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/

相关文章:

javascript - jQuery:如何在所有异步调用返回时触发事件?

javascript - 通过忽略 div 标签 javascript 的内部元素来选择文本

javascript - 如何从其他应用程序 Kintone 复制数据?

c# - 字符串替换的正则表达式模式

javascript - 如何将自定义图像标签添加到 pagedown?

javascript - 更新循环内对象内的变量

JavaScript remove() 在 IE 中不起作用

python - 如何在一行中搜索带有特殊符号的字符串

python - 添加一个新列,将短语中的所有大写单词附加到每行的列表中

regex - 需要帮助来创建正则表达式