Как удалить HTML-теги в строке Handlerbar.js Использование регулярных выражений

#javascript #html #regex #handlebars.js

#javascript #HTML #регулярное выражение #handlebars.js

Вопрос:

У меня есть строка, подобная

 var string =`<div><b>Test data</b></div><div><div>Invalid DateTime Only YYYY/MM/DD HH:mm:ss is allowed</div></div><br><div><div>Invalid DateTime</div>`
 

Удалите эти HTML-теги из строки, используя регулярное выражение в Handlebar.
Мой код выглядит так

Это значение отображения моя точная строка, я должен заменить теги HTML здесь

 <span title="{{{this.DISPLAYVALUE}}}"> {{strip-scripts this.DISPLAYVALUE}}
<a href="javascript:void(0);" class="remove-ico right" data-filter-val="{{{this.DISPLAYVALUE}}}" datacolname='{{@root.currentColName}}'>
<i class="fa fa-times-circle"></i>
</a>
</span>
 

Исключенный результат:-
Недопустимая дата-время проверки данных Допускается только для ГГГГ / ММ / ДД ЧЧ: мм: сс Недопустимая дата-время

Комментарии:

1. Вам нужно извлечь строковое значение, которое будет отображаться в результате HTML-кода ?! Вы можете использовать js для изменения внутреннего html

2. Похоже, в строке отсутствует закрывающий тег div.

3. да! но это не проблема, я просто хочу показать строку, а не теги

4. Можете ли вы просто использовать string.replace в js?

Ответ №1:

Существуют ВСПОМОГАТЕЛЬНЫЕ методы, которые вы можете использовать непосредственно в шаблонах handlebars.Например, вы можете создать отдельный вспомогательный js-файл handlebars, как показано ниже;

     (function() {
    Handlebars.registerHelper('stripScripts', function(param) {
        var regex = /(<([^>] )>)/ig
        return param.replace(regex, "");
    });

})();
 

Затем вы можете просто вызвать этот метод в своем шаблоне, например;

 <span title="{{{this.DISPLAYVALUE}}}"> {{stripScripts this.DISPLAYVALUE}}
<a href="javascript:void(0);" class="remove-ico right" data-filter-val="{{{this.DISPLAYVALUE}}}" datacolname='{{@root.currentColName}}'>
<i class="fa fa-times-circle"></i>
</a>
</span>
 

Ответ №2:

Если вы можете использовать JS:

 function myFunction() {
    var str = "<div><b>Test data</b></div><div><div>Invalid DateTime Only YYYY/MM/DD HH:mm:ss is allowed</div></div><br><div><div>Invalid DateTime</div>"; 
    var res = str.replace(/<div>/g, "");
    var res = res.replace(/</div>/g, "");
    var res = res.replace(/<b>/g, "");
    var res = res.replace(/</b>/g, "");
    var res = res.replace(/<br>/g, " ");
    console.log(res);
}