在另一个字符串中以多个(但有限的)匹配插入字符串

时间:2014-12-01 16:10:51

标签: javascript regex string text-manipulation

我在Javascript中有这个字符串:

text = "2222 22:22: John: New York /n last year and: the next year /n 3333 33:33: Jack: Los Angeles!!!"

我希望它如下:

newText = "(xSep)2222 22:22:(zSep) John:(zSep) New York /n last year and: the next year /n (xSep)3333 33:33:(zSep) Jack:(zSep) Los Angeles!!!"

我尝试了很多东西,只有这样才能使我的其余代码工作。 所以“(xSep)”应该 每四个数字和“(zSep)”应该 之后 前两个“:”

请帮我解决这个问题。先谢谢你。

2 个答案:

答案 0 :(得分:1)

根据您给定的输出和要求,您可以使用以下内容。

var res = str.replace(/(\d{4}(?:[^:]*:){2})([^:]*:)/g, '(xSep)$1(zSep)$2(zSep)');

Working Demo

答案 1 :(得分:0)

只需使用带有正则表达式的string.replace方法作为针。