Javascript 正则表达式查找字符串结尾

Javascript 正则表达式查找字符串结尾,javascript,regex,Javascript,Regex,我对正则表达式有困难 我想替换所有的myData=xxxx&xxxx可以更改,但总是以&结束,除了最后一次,当它是myData=xxx时 var data = "the text myData=data1& and &myData=otherData& and end myData=endofstring" data.replace(/myData=.*?&/g,'newData'); 它返回: 文本newData和&newData和end myData=end

我对正则表达式有困难

我想替换所有的
myData=xxxx&
xxxx可以更改,但总是以
&
结束,除了最后一次,当它是
myData=xxx

var data = "the text myData=data1& and &myData=otherData& and end myData=endofstring"
data.replace(/myData=.*?&/g,'newData');
它返回:

文本newData和&newData和end myData=endofstring

这是正确的,但如何检测最后一个呢?

两件事:

  • 您需要将
    replace
    的结果分配到某个地方,而您在问题代码中没有这样做

  • 您可以使用替换(
    |
    )来匹配
    &
    或字符串结尾

  • 因此:

    var data=“文本myData=data1&和&myData=otherData&和end myData=endofstring”
    data=data.replace(/myData=.*(?:&|$)/g,'newData');
    //  ^^^^^^^-- 1                    ^^^^^^^-- 2
    控制台日志(数据)关于:

    data="myData=abc& and linked with something else";
    data.replace(/myData=.*?&/g,'newData');
    

    使用[&$\.]而不是(?:&|$])是否正确?@MC93:你为什么这么说?它将替换最后一次出现的字符,即使它不在字符串的末尾,前提是后面紧跟着
    &
    (这几乎是必须的)。@Poyke:No.
    [&$]
    查找字符
    &
    $
    。再次查看他的问题,他添加了一个新的字符。在最后一个事件的末尾,以便您可以查找&或$或\。使用正确的syntax@Poyke:我想这只是问题中句子的结尾;引用的示例中最后一次出现的末尾没有