Ответ 1
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
О, или вы также можете:
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
У меня есть строка, например hello _there_
. Я бы хотел заменить два символа подчеркивания <div>
и </div>
соответственно, используя JavaScript. Результат будет (поэтому) выглядеть как hello <div>there</div>
. Строка может содержать несколько пар подчеркиваний.
То, что я ищу способ либо запустить функцию на каждый матч, то, как Рубин делает это:
"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
Или иметь возможность ссылаться на соответствующую группу, опять же, как это можно сделать в рубине:
"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
Любые идеи или предложения?
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
О, или вы также можете:
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
Вы можете использовать replace
вместо gsub
.
"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
Для строки замены и шаблона замены, как указано в $ здесь, резюме:
ссылка на документ: здесь
"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")
Замечания:
Если вы хотите иметь $
в строке замены, используйте $$
. То же, что и в системе сниппетов vscode.