2016-07-07 3 views
1

У меня есть текст HTML, я хочу заменить тег привязки конкретного класса на текст в jquery.javascript regex заменить тег привязки определенного класса с текстом

Например,

var htmltext="test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>"; 

Я хочу, чтобы заменить весь якорь тег с текстом.

Требуемая мощность:

var htmltext="test message **Harshvardhan Rane** test <br> **Jay Alvarrez**"; 

ответ

3

Это никогда не является хорошей идеей, чтобы изменить HTML с регулярным выражением. Вместо этого, так как вы упоминаете JQuery, использовать манипуляции узел инструменты:

var htmltext='test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>'; 
 
var $html = $("<div/>").html(htmltext); 
 
$html.find("a").each(function() { 
 
    $(this).replaceWith("**"+$(this).text()+"**"); 
 
}); 
 
$("body").append($html)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

2

метод использования Try replace со следующим регулярным выражением:

htmltext.replace(/<\/*a.*?>/g,'**') 

Это утверждение должно вернуться точно, что тебе нужно.

var htmltext='test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>'; 
 

 
htmltext=htmltext.replace(/<\/*a.*?>/g,'**'); 
 
console.log(htmltext);

+0

И это так. Я по-прежнему предпочитаю манипулировать тегами с помощью DOM или в этом случае jQuery – mplungjan