您好我正在尝试从特定字符串中删除所有显示错误的html标记。
这是我的字符串:
<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>
我的jQuery代码在这里:
var item = <p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>;
item = item.replace(/~/g, '');
item = item.replace(/<p>/g, '');
item = item.replace('</p>'/g, '');
var splitArray = item.split('<br />');
var l = splitArray.length;
for (var i = 0; i < l; i++) {
out = out + "<li><span class='sp_icon sp_star_icon'></span> "
+ splitArray[i].trim() + "</li>";
}
console.log(item);
答案 0 :(得分:18)
你可以用正则表达式删除所有的html标签:/<(。|\ n)*?&gt; / g
此处详细说明:http://www.pagecolumn.com/tool/all_about_html_tags.htm
在你的JS代码中,它看起来像这样:
item = item.replace(/<(.|\n)*?>/g, '');
答案 1 :(得分:3)
不要自己动手,让DOM为你做。
E.g。 (使用jQuery)
jQuery("<p>Hi there</p>...").text();
// => "Hi there..."
E.g。 (没有jQuery)
var d = document.createElement('div');
d.innerHTML = "<p>Hi there</p>...";
(d.textContent || d.innerText); // => "Hi there..."
答案 2 :(得分:3)
使用vanilla JS,你可以这样做
var item = '<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>';
function getText(html) {
var tmp = document.createElement('div');
tmp.innerHTML = html;
return tmp.textContent || tmp.innerText;
}
console.log(getText(item));
&#13;
答案 3 :(得分:3)
var item = '<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>'
item = item.replace(/<\/?.+?>/ig, '');
答案 4 :(得分:1)
我希望您只是尝试从字符串中删除HTML标记。以下应该工作。虽然可能需要测试。
filtered = yourString.replace(/<[a-z]{1}>.*?<\/[a-z]{1}>/gi, "");
如果您只是想摆脱并标记并将文本保留在其中,那么
filtered = yourString.replace(/<\/{0,1}[a-z]+>/gi, "");
答案 5 :(得分:1)
您可以使用jQuery的文本方法。
var item = '<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>';
console.log($(item).text());
查看小提琴代码
答案 6 :(得分:0)
根据您的特定字符串要求(删除<p>
元素):
item = item.replace(/<\/?p>/g,''); // will globally find “<p>” and “</p>” only
答案 7 :(得分:0)
您可以将字符串包装在jQuery对象中:
var removeElements = function(text, selector) {
var wrapped = $("<div>" + text + "</div>");
wrapped.find(selector).remove();
return wrapped.html();
}
var removedPString = removeElements("<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>", "p");