Ответ 1
попробуйте
var regexp = new RegExp(something, 'ig');
str.replace(regexp, '<span class="marked">$&</span>')
Литература:
Как вы используете согласованные переменные в шаблоне в заменяющей строке?
var regexp = new RegExp('needle', 'ig');
str.replace(regexp, '<span class="marked">//1</span>')
попробуйте
var regexp = new RegExp(something, 'ig');
str.replace(regexp, '<span class="marked">$&</span>')
Литература:
Правильный способ использования обратных ссылок в JavaScript - через $1
... $9
.
Чтобы ваш пример работал:
var regexp = new RegExp(something, 'ig');
var result = str.replace(regexp, '<span class="marked">$1</span>');
Дополнительная информация доступна здесь: http://www.regular-expressions.info/javascript.html#replace