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:我想这只是问题中句子的结尾;引用的示例中最后一次出现的末尾没有
。