Javascript: исключить из регулярных выражений вместо - PullRequest
0 голосов
/ 06 апреля 2019

В этом регулярном выражении:

let str = "hello 〔world〕,foo、bar。";
str.replace(/(〔(.*?)〕|(、)|(,)|(。))/gi,'<div>$1</div>');

Как исключить эти две квадратные скобки "〔" и "〕" из результата?

Чтобы получить этот результат:

"hello <div>world</div><div>,</div>foo<div>、</div>bar<div>。</div>"

1 Ответ

1 голос
/ 06 апреля 2019

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

let str = "hello 〔world〕,foo、bar。";
str = str.replace(/〔(.*?)〕|((…)|(。)|(,)|(、))/gi,(match,g1,g2)=>`<div>${g1 ? g1 : g2}</div>`);

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