Я хочу заменить пустые строки в своей строке с числом итерации
например, замена
Строка:
"My first line
My second line
My third line"
с
"
1
My first line
2
My second line
3
My third line"
Я могу соответствовать и заменить эти строки использование
var newstring = TestVar.replace (/(^|\n\n)/g, "\nhello\n");
Однако я изо всех сил пытаюсь добавить функцию, которая добавит число итерации к каждому.
Можно ли помочь?
TIA,
Ценурозы
Да, это можно сделать в javascript. Нужно просто передать функцию в качестве второго аргумента в replace
.
var i = 0;
var newstring = TestVar.replace(/(^|\n\n)/g, function() { return '\n' + (++i) + '\n'; });
функция на самом деле получает множество параметров, на основе которых можно решить, каким значением заменить, но для этой задачи они нам не нужны.
Однако, о них приятно знать, в MDC есть отличная документация по теме
Вот версия без использования регулярного выражения. Вы можете использовать метод split()
String
, хотя, честно говоря, я бы использовал более аккуратную версию регулярного выражения.
var testVar = "My first line\n\nMy second line\n\nMy third line";
var lines = testVar.split("\n\n"), newStringParts = [];
for (var i = 0, len = lines.length; i < len; ++i) {
newStringParts.push(i + 1);
newStringParts.push(lines[i]);
}
alert( newStringParts.join("\n") );