簡體   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