замена строки с использованием регулярного выражения с интервалом X-й позиции (JavaScript) - PullRequest
2 голосов
/ 28 октября 2011

Я был бы очень признателен за помощь сообщества по замене строки через x-й интервал позиции с использованием регулярного выражения javascript.Например, если длина строки равна 161, а текст замены - <br />, регулярное выражение заменит строку в 40-й, 80-й, 120-й и 160-й позициях этим текстом замены.Возможно ли это с помощью регулярных выражений?

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Метод добавления <br /> в любой 40-й позиции заключается в использовании следующей строки:

string = string.replace(/([\S\s]{40})/g , "$1<br />");

Если вы хотите динамически установить позицию, используйте:

var positions = 40;
var pattern = new RegExp("([\\s\\s]{" + positions + "})", "g");
string = string.replace(pattern , "$1<br />");

Объяснение кода :

  1. Первый аргумент функции replace - это RegExp:
    • ([\S\s] = все непробельные и белыепробел = каждый символ).
    • {40} = 40 символов
    • Флаг g означает: глобальное совпадение, т. е. соответствует каждому возможному вхождению
    • Скобки внутриRegExp означает: создать группу.Позже эту группу можно отнести к $1 (первая группа)
  2. Второй аргумент функции replace содержит $1<br />.То есть: заменить полное совпадение на первую группу ($1) и добавить к ней <br />.
1 голос
/ 28 октября 2011
var str = "12345678901234567890";
var newStr = str.replace(/(.{5})/g,"$1<br/>");

на каждые 40, измените 5 на 40.

...