2014-02-14 25 views
0

我有一個像下面JavaScript正則表達式操作

string TagName = "Synergy-SunOptics-545-888-LLA  Replacement" ; 

在此,我使用象下面這樣的正則表達式的字符串。

TagName =TagName.replace(/\d{3}-\d{3}-[A-Z]{3}\s([\w\s]*)$/,a+"-"+b+"-"+c+" $1"); 

它所做的是,這個正則表達式替換3點的數值,即(545-888)與數值我提供,但是這隻有當我爲每個數字恰好組3數值..即..

它的工作原理:

"Synergy-SunOptics-676-454-LLA  Replacement" 

它不工作:

"Synergy-SunOptics-54-8884-LLA  Replacement" 

所以,我需要這個正則表達式應該與任何沒有。提供的數值例如..「1111-1111」或「11-1111」或「1-1111」或「1111-111」等。

+0

爲什麼不用'\ d +'而不是'\ d {3}'? –

回答

0

只需使用+量詞替代{3}量詞。 +匹配一個或多個匹配項。而{3}恰好指定了三次發生。

像這樣:

TagName =TagName.replace(/\d+-\d+-[A-Z]{3}\s([\w\s]*)$/,a+"-"+b+"-"+c+" $1"); 

或者,如果你需要匹配出現的特定範圍,您可以使用一系列量詞:{1,8}會匹配1到8 OCCURENCES,{6, 15}將匹配6至15次等

請參閱本網站上的量詞節JavaScript的正則表達式味更多信息,量詞javascript regex cheat sheet

+0

@ JonM..Thanks for you quick help ..我現在就這樣使用..但它不起作用TagName = TagName.replace(/ \ d {+} - \ d {+} - [AZ] {3} \ s([\ w \ s] *)$ /,a +「 - 」+ b +「 - 」+ c +「$ 1」); – vicky

+0

刪除大括號 – JonM

+0

@JonM ...非常感謝好友....現在它工作得很好:) ...謝謝。 – vicky

0
TagName =TagName.replace(/\d+-\d+-[A-Z]{3}\s([\w\s]*)$/,a+"-"+b+"-"+c+" $1");