Я сделал работающее регулярное выражение, но я думаю, что это не лучший вариант использования:
el = '<div style="color:red">123</div>';
el.replace(/(<div.*>)(\d+)(<\/div>)/g, '$1<b>$2</b>$3');
// expecting result: <div style="color:red"><b>123</b></div>
После поиска в Google я обнаружил, что (?: ... )
в регулярных выражениях означает игнорирование группового соответствия, таким образом:
el.replace(/(?:<div.*>)(\d+)(?:<\/div>)/g, '<b>$1</b>');
// returns <b>123</b>
но мне нужен ожидаемый результат из 1-го примера.
Есть ли способ их исключить? просто написать replace(/.../, '<b>$1</b>')
?
Это всего лишь небольшой пример для понимания того, как исключить группы в регулярном выражении. И я знаю, что такое мы не можем анализировать HTML с помощью регулярных выражений :)
.replace
заменит все совпадение. - person Felix Kling   schedule 01.04.2012