Javascript Regex取代第6次出现; (分号)with; \ n(分号和换行符)

时间:2011-02-25 05:03:02

标签: javascript regex

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是通配符。

我想通过在分号(;)的每第6次插入时插入换行符(\ n)来更新我的字符串

我一直试图用正则表达式来做这件事:


var myregexvar = textbox.value;

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

/ u003b是';'

的unicode字符代码

它不起作用。帮助!

2 个答案:

答案 0 :(得分:2)

尝试匹配(([^;]*;){5}[^;]*);并替换为$1\n

第一个分组表达式([^;]*;){5}查找五个bla;。然后[^;]*获得第六个bla(没有;)。所有这些都归为$1。然后单独匹配最后一个分号,以便将其省略并替换为替换表达式中的\n

修改

没有意识到你想在每六个分号后添加 \n,而不是替换。您可以使用这个更简单的匹配表达式:([^;]*;){6}

答案 1 :(得分:0)

希望这个算法可以帮助你

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