2011-02-25 59 views
0
string = "bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;"; 

bla是通配符。Javascript正則表達式替換第6次出現; (分號); n(分號和換行符)

我想通過在分號的每6個出現插入一個換行符(\ n)來更新我的字符串(;)

我一直在試圖用正則表達式來做到這一點:


var myregexvar = textbox.value; 

myregexvar = myregexvar.replace(/\u003b.*\u003b.*\u003b.*\u003b\b/, /$1\n/); 

/u003b是';'的Unicode字符代碼

它不起作用。幫幫我!

+0

你可能想看看[我的回答類似的問題(http://stackoverflow.com/a/17852821/483113)。 – sjngm

回答

2

嘗試匹配(([^;]*;){5}[^;]*);並替換爲$1\n

第一組表達式([^;]*;){5}尋找5個bla;。然後[^;]*需要第六個bla(沒有;)。所有這些被分組到$1。然後將最後一個分號分開匹配,以便將其替換爲替換表達式中的\n

編輯

不知道你想添加\n每六個分號之後,而不是替代。您可以使用這個更簡單的匹配表達式:([^;]*;){6}

+0

感謝!你讓我感到悲傷! 已完成代碼: myregexvar = myregexvar.replace(/(([^;] *;){5} [^;] *);/g,'$ 1 \ u003b \ n'); – boflexer

0

希望這算法可以幫助ü

$occurance = 6; 
$count = 0; 
while (/\u003b/gi) { 
    if (++$count == $occurance) { 
     myregexvar.replace(/\u003b/, /\n/);   
    } 
} 
+0

你真的有'= ='這麼多嗎? –

+0

我只是建議'阿爾戈'..不適當的代碼 – diEcho

+0

我沒有嘗試它,因爲mellamokb的職位是第一次和工作,但非常感謝! – boflexer

相關問題