【问题标题】:Javascript to search and replace using RegEx - not working in iMacros [duplicate]使用 RegEx 搜索和替换的 Javascript - 在 iMacros 中不起作用 [重复]
【发布时间】:2020-11-15 13:39:37
【问题描述】:

我正在尝试使用 javascript 在字符串中执行搜索和替换。 字符串的示例如下所示: 参数 1 = xxx 其中 xxx 是我要替换的一些字符

RegEx 需要查找“Parameter 1 =”之后的所有内容,直到该行的末尾,即 xxx。 然后,javascript 需要将 xxx 替换为 yyy,其中 yyy 是一些其他字符。 例如, 参数 1 = 42 => 参数 1 = 11

我在这个论坛 (What Regex would capture everything from ' mark to the end of a line?) 上找到了这个正则表达式。为我的情况修改它是:

(?<=Parameter 1 = ).*$

然后我尝试了以下 java 脚本:

var str="Parameter 1 = 42";`
var res=str.replace(/(?<=Parameter 1 =).*$/, "11");
alert(res);

但是,当我使用 iMacros 运行它时,这给了我一个错误:

SyntaxError: invalid regexp group, line 6 (Error code: -991)

附言我不明白为什么我的问题被标记为 [重复] 并已关闭?

【问题讨论】:

    标签: javascript regex escaping


    【解决方案1】:

    这是你想要的:

    var str="Parameter 1 = 42";
    var res=str.replace(/(?<=Parameter 1 =).*$/, "11");
    console.log(res);

    如果不支持后视,您可以这样做:

    var str = "Parameter 1 = 42";
    var res = str.replace(/(Parameter 1 =)(.*)$/, "$163");
    console.log(res);

    【讨论】:

    • @HoLoN,谢谢您的回答。但是,您的解决方案也给了我一个错误: SyntaxError: invalid regexp group, line 6 (Error code: -991) (I am running the javascript in iMacros)
    • sn-p 正确,试试run snippet
    • @HoLoN,是的,sn-p 有效。但是,它不适用于 iMacros(v. 8.9.7 和 Firefox Developer Edition (Portable) v. 55.0b2(64 位))。我收到上面的语法错误:“SyntaxError: invalid regexp group, line 6 (Error code: -991)”
    • 那是因为您的正则表达式引擎不支持后向组。
    • 哦。在 iMacros 中是否有其他方法可以解决此问题?也许以某种方式重写 RegEx 以使其与 iMacros RegEx 引擎兼容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2016-07-21
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多