#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);
}