Вставить строки с несколькими (но ограниченными) совпадениями в другую строку

У меня есть эта строка в 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 ответа

Решение

Исходя из ваших данных и требований, вы можете использовать следующее.

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

Рабочая Демо

Просто используйте метод string.replace с регулярным выражением в качестве иглы.

Другие вопросы по тегам