Javascript заменить ссылкой на соответствующую группу? - PullRequest
201 голосов
/ 05 августа 2009

У меня есть строка, например hello _there_. Я хотел бы заменить два подчеркивания на <div> и </div> соответственно, используя JavaScript . Вывод (следовательно) будет выглядеть как hello <div>there</div>. Строка может содержать несколько пар символов подчеркивания.

То, что я ищу, - это способ либо запускать функцию при каждом совпадении, как это делает Ruby:

"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }

Или может ссылаться на соответствующую группу, опять же, как это можно сделать в ruby:

"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")

Есть идеи или предложения?

Ответы [ 3 ]

333 голосов
/ 05 августа 2009
"hello _there_".replace(/_(.*?)_/, function(a, b){
    return '<div>' + b + '</div>';
})

Да, или вы также можете:

"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
30 голосов
/ 05 августа 2009

Вы можете использовать replace вместо gsub.

"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
2 голосов
/ 02 февраля 2019

Для строки замены и шаблона замены, как указано $. вот резюме:

enter image description here

ссылка на документ: здесь

"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")



Примечание:

Если вы хотите иметь $ в строке замены, используйте $$. То же, что и с системой фрагментов vscode.

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