Заменить в строке не работает как задумано - PullRequest
0 голосов
/ 23 декабря 2018

Я написал эту функцию:

function solution(input, markers) {
  let inputcopy = input;
  let regexstring = markers[0]+'.*?(?=\\\\n)';
  let regexp1 = new RegExp(regexstring, 'gm');

  return inputcopy.replace(regexp1,'a');
};
console.log(solution("apples, plums % and bananas\npears\noranges !applesauce", ["%", "!"]));

Функция должна вернуть

apples, plums a\npears\noranges !applesauce

, но возвращает

apples, plums % and bananas\npears\noranges !applesauce

Что я должен изменить?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Вы можете использовать знак конца строки $ и многострочный флаг m вместе.

В противном случае вам не нужен многострочный флаг, а правая новая строка только с двойной обратной косой чертой \\n.

function solution(input, markers) {
  let inputcopy = input;
  let regexstring = markers[0]+'.*$';
  let regexp1 = new RegExp(regexstring, 'gm');

  return inputcopy.replace(regexp1,'a');
}
console.log(solution("apples, plums % and bananas\npears\noranges !applesauce", ["%", "!"]));
//                    apples, plums   a          \npears\noranges !applesauce
0 голосов
/ 23 декабря 2018

Измените \\\\n на \\n.Это должно работать.

function solution(input, markers) {
        let inputcopy = input;
        let regexstring = markers[0]+'.*?(?=\\n)';
        let regexp1 = new RegExp(regexstring, 'gm');

        return inputcopy.replace(regexp1,'a');
    };

    solution("apples, plums % and bananas\npears\noranges !applesauce", ["%", "!"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...