2012-06-03 220 views
1

給出以下字符串:JavaScript字符串替換使用正則表達式表達

http://foobar.com/trusted/123/views/AnalyticsInc

..where 123將是一個數之間的任何地方0和9999999,我需要能夠動態地用一個不同的值替換所述值

我認爲最好的方法來做到這一點是做一個string.replace與某種正則表達式模式,因爲我們可以指望事實「/ trusted /」和「/ views /」將始終圍繞需要交換的值。

var foo='http://foobar.com/trusted/123/views/AnalyticsInc'; 
var newvalue=654321; 
magic(); //magic happens here 
console.log(foo); //returns http://foobar.com/trusted/654321/views/...etc 

但是我的正則表達式功夫太弱了我不能打敗一隻小貓。有人能幫我一把嗎?或者如果有更好的方法,我很樂意學習它。謝謝!

回答

2

它將從0 foo字符串替換數的第一次出現到9999999:

foo = foo.replace(/\d{1,7}/, newvalue); 

DEMO:http://jsfiddle.net/D4teZ/

+0

那先生,是完美的。謝謝。 –

+0

歡迎:) – VisioN

+0

更通用的是('/ \/\ d + \//','/'+ newvalue +'/')',因此要替換的數字字符串可以是'/'之間的一個或多個數字。 – RobG