繁体   English   中英

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

[英]regular expression find end of string

我有一个正则表达式的麻烦。

我想替换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并结束myData = endofstring

这是正确的,但我怎么能检测到最后一个?

两件事情:

  1. 你需要在某个地方分配replace结果,而你在问题的代码中没有这样做

  2. 您可以使用替换| )来匹配字符串的&或结尾

所以:

  var data = "the text myData=data1& and &myData=otherData& and end myData=endofstring" data = data.replace(/myData=.*?(?:&|$)/g,'newData'); // ^^^^^^^-- 1 ^^^^^^^-- 2 console.log(data); 

注意使用非捕获组( (?:...) )来限制交替的范围。

关于什么 :

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

https://jsfiddle.net/ob8c2j9v/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM