Регулярное выражение для запятой, как обернуть слово тегом html и извлечь числа - PullRequest
1 голос
/ 04 мая 2020

Исходная строка

var string = '[[[15]]]未分類,[[[1800449870]]]Special Clothing,[[[2100]]]Accessories,[[[610]]]third cat';

1-я строка, которую я хочу создать

var string1 = '<span>未分類</span>,<span>Clothing</span>,<span>Accessories</span>,<span>third cat</span>';

2-я строка, которую я хочу создать

var string2 = '15,1800449870,2100,610';
  • Числа всегда заключаются в "[[[" и "]]]".
  • Числа являются "натуральными числами", без отрицательного значения или нуля.
  • Количество цифр неизвестно.
  • Слова после числа могут быть английскими sh, японскими, китайскими, ... et c.

Я мог бы извлечь слова с помощью следующего кода, но не знаю, как Оберните с

var string1 = string.replace(/\[\[\[\d+\]\]\]/g, '');

Заранее спасибо.

1 Ответ

1 голос
/ 04 мая 2020

Попробуйте использовать замену регулярного выражения:

var string = '[[[15]]]未分類,[[[1800449870]]]Special Clothing,[[[2100]]]Accessories,[[[610]]]third cat';
var output = string.replace(/\[\[\[.*?\]\]\]([^,]+)/g, '<span>$1</span>');
console.log(output);

var output2 = string.replace(/\[\[\[(\d+?)\]\]\][^[]+/g, '$1,').slice(0, -1);
console.log(output2);

Общий подход для обеих строк состоит в том, чтобы соответствовать терминам [[[...]]], фиксируя либо то, что следует за этими тегами, либо число, встречающееся внутри тегов. Затем мы строим замену, используя группу захвата. Обратите внимание, что вызов slice во второй числовой строке CSV необходим для обрезки окончательной разделительной запятой, которую мы не хотим отображать в выводе.

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