Регулярное выражение новой строки и 5 новых пробелов - PullRequest
1 голос
/ 10 марта 2020

Я новичок в javascript регулярное выражение Любая помощь или подсказка будет принята с благодарностью !! У меня есть это требование: \\.sp number\ -> Завершить текущую строку вывода и пропустить <number> вертикальные пробелы. <number> - положительное целое число или отсутствует. Если <number> отсутствует, пропустите один пробел. Горизонтальная позиция символа остается неизменной.

исходный текст:

This is result level note five: This text is highlighted\.sp 5\This sentence should be displayed after 5 new lines.\.ce\This line should be centered.
This sentence should be on a new line.

новый текст:

This is result level note five: This text is highlighted<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This sentence should be displayed after 5 new lines.\.ce\This line should be centered.
This sentence should be on a new line.

Пример реализации:

             test1 = test1.replace(/\\H\\/g,"<b>");
             test1 = test1.replace(/\\N\\/g,"</b>");

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете использовать дополнительную группу захвата, чтобы соответствовать di git и использовать функцию обратного вызова, используя replace.

Проверьте, определена ли группа 1. Если это так, используйте номер из группы в сочетании с, например, repeat для генерации строки замены.

Для демонстрации я использовал новую строку в качестве замены.

\\\.sp (\d+)?\\

Regex demo

const regex = /\\\.sp (\d+)?\\/g;
const str = `This is result level note five: This text is highlighted\\.sp 5\\This sentence should be displayed after 5 new lines.\\.ce\\This line should be centered.
This sentence should be on a new line.

This is result level note without a number: This text is highlighted\\.sp \\This sentence should be displayed after 1 new lines.\\.ce\\This line should be centered.
This sentence should be on a new line.
`;
const result = str.replace(regex,
  (_, g1) => g1 !== undefined ? "\n".repeat(parseInt(g1, 10)) : "\n\n"
);

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...