2013-02-20 30 views
0

我有一些字符串可能在URL .. ala ..我可以「獲取名稱/值」等。這不是問題。問題是,考慮到我需要在值中插入額外的字符。所以:在javascript中插入正則表達式文本

var someValue = "yes_maybe_next_year" 

如果我得到一個字符串「_maybe」在裏面,我會插入我的額外字符後面,ala。 所以它會變成:

var charsToInsert = "_no"; 
var someValue = "yes_maybe_next_year"; 
var newValue = "yes_maybe_no_next_year"; 

這是蹭。我可能不會在那裏「可能」。所以我需要在「是」之後插入「_no」。 這是第二次擦。該字符串可能包含與「next_year」不同的字符。

var someValue = "yes_sometime_later"; 

所以,事實上:我需要能夠通過正則表達式插入的東西。

var regex = /^(yes_)(maybe_)(\w*)?/ 

我對如何做到這一點感到茫然。

所以,如果「maybe_」存在,我會在它後面加上「no」,否則「no」會在「yes_」後面。

+0

如果您使用的條件下,好的做法做2個步驟:如果別的..。在你的情況下,正則表達式非常昂貴。它似乎很好做1行,但... :) – 2013-02-20 09:04:38

回答

3

這裏是一個可能的解決方案:

var newValue = someValue.replace(/yes_(maybe_)?/, "$&no_"); 

// "yes_maybe_next_year" --> "yes_maybe_no_next_year" 
// "yes_sometime_later" --> "yes_no_sometime_later" 
+0

是的,經過蠢蠢欲動,我想出了這個:.replace(/ ^(是_)(也許_)?/,「$ 1 $ 2no_」) - - >你的$&做什麼? – 2013-02-20 09:13:50

+0

@jamesemanon它包含所有匹配的子字符串。 – VisioN 2013-02-20 09:15:44

+0

@VisionN - 所以在這種情況下,我的「$ 1 $ 2」是短的嗎? – 2013-02-20 09:22:05