Javascript 如何从字符串中删除所有html标记
您好,我正在尝试删除一个特定字符串中的所有html标记,显示错误 这是我的字符串:Javascript 如何从字符串中删除所有html标记,javascript,jquery,Javascript,Jquery,您好,我正在尝试删除一个特定字符串中的所有html标记,显示错误 这是我的字符串: <p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p> 你好~wifi-free这是一个测试~早餐免费这是另一个测试 我的jQuery代码如下: var item = <p>Hi there<
<p>Hi there</p> ~ wifi free <p>this is test</p> ~ breakfast free <p>This is another test</p>
你好~wifi-free这是一个测试~早餐免费这是另一个测试
我的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);
var item=Hi那里~wifi free这是测试~早餐免费这是另一个测试;
项目=项目。替换(/~/g',);
项目=项目。替换(//g');
项目=项目。替换(“”/g“);
var splitArray=item.split(“
”);
var l=splitArray.length;
对于(变量i=0;i”
+拆分数组[i].trim()+“”;
}
控制台日志(项目);
不要自己做,让DOM替你做
例如(使用jQuery)
jQuery(Hi那里…).text();
//=>“你好…”
例如(不带jQuery)
var d=document.createElement('div');
d、 innerHTML=“你好,…”;
(d.textContent | | d.innerText);//=>“你好……”
您可以使用正则表达式:/g除去所有html标记
详细描述如下:
在JS代码中,它将如下所示:
item = item.replace(/<(.|\n)*?>/g, '');
item=item.replace(//g',);
使用vanilla JS,您可以这样做
var item='Hi那里~wifi-free这是一个测试~早餐免费这是另一个测试';
函数getText(html){
var tmp=document.createElement('div');
tmp.innerHTML=html;
返回tmp.textContent | | tmp.innerText;
}
log(getText(item))代码>var item='您好~wifi free这是测试~早餐免费这是另一个测试'
item=item.replace(//ig',);
根据您对特定字符串的要求(要删除
元素):
item=item.replace(//g',);//将仅全局查找“”和“”
您可以将字符串包装到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");
var removeElements=函数(文本,选择器){
var wrapped=$(“”+text+“”);
wrapped.find(选择器).remove();
返回wrapped.html();
}
var removedPString=removeElements(Hi那里~wifi free这是测试~早餐免费这是另一个测试,“p”);
我希望您只是试图从字符串中删除HTML标记。下面的方法应该有效。虽然可能需要测试
filtered = yourString.replace(/<[a-z]{1}>.*?<\/[a-z]{1}>/gi, "");
filtered=yourString.replace(/.*?/gi,”);
如果你只是想去掉和标记,然后把文本放在里面
filtered = yourString.replace(/<\/{0,1}[a-z]+>/gi, "");
filtered=yourString.replace(//gi,”);
您可以使用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());
var item='Hi那里~wifi-free这是一个测试~早餐免费这是另一个测试';
log($(item.text());
您可以在处检查FIDLE代码错误是否与您的第一个字符串没有用引号括起来有关?或者这不是代码中的实际外观?请确保您发布的内容与您使用的内容完全一致。并告诉我们错误。您的变量项
必须在引号中。第三个替换(''/g
)也很奇怪。我认为这根本不起作用。这不起作用,因为它不仅会删除标记,还会删除标记中的文本。我已经使用了它。OP应该注意:这是不推荐的,因为您的正则表达式将永远无法像真正的浏览器HTML解析引擎那样宽松和全面。如果您正在删除已知的HTML,那么这很酷,但是如果这个HTML未知,那么您应该真正寻找一个合适的HTML解析引擎,最方便的是本机浏览器DOM:)
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");
filtered = yourString.replace(/<[a-z]{1}>.*?<\/[a-z]{1}>/gi, "");
filtered = yourString.replace(/<\/{0,1}[a-z]+>/gi, "");
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());