从javascript字符串中删除HTML标记
我有以下代码:从javascript字符串中删除HTML标记,javascript,jquery,Javascript,Jquery,我有以下代码: var content = "<p>Dear sms,</p><p>This is a test notification for push message from center II.</p>"; 您可以使用jQuery获取纯文本,而不使用html标记 withoutP = $(content).text() 使用纯javascript: content = content.replace(/(<p>|<
var content = "<p>Dear sms,</p><p>This is a test notification for push message from center II.</p>";
您可以使用jQuery获取纯文本,而不使用html标记
withoutP = $(content).text()
使用纯javascript:
content = content.replace(/(<p>|<\/p>)/g, "");
content=content.replace(/()/g,”);
为什么不让jQuery来做呢
var content = "<p>Dear sms,</p><p>This is a test notification for push message from center II.</p>";
var text = $(content).text();
var content=“亲爱的短信,这是一个针对来自中心II的推送消息的测试通知。”;
var text=$(content.text();
var content=“a
”;
var withoutP=$(content).text()
警报(未发出)
这个不适用于.text()解决方案。这是我的解决方案
function removeTags(){
var txt = document.getElementById('myString').value;
var rex = /(<([^>]+)>)/ig;
alert(txt.replace(rex , ""));
}
函数removeTags(){
var txt=document.getElementById('myString').value;
var-rex=/(]+>)/ig;
警报(txt.replace(rex,”);
}
在标记中放置隐藏元素
,或者从jQuery创建它。使用此代码可以获得纯文本,而不会出现标记不完整的复杂情况,
等
content = $(hiddenElement).html($(hiddenElement).html(content).text()).text();
上述方法对我不起作用。所以我找到了一个解决这个问题的替代方案`
var regex = "/<(.|\n)*?>/";
var originaltext = "1. Males and females were compared in terms of time management ability. <br><br>The independent variables were the people in the study.<br><br> Is this statement correct";
var resultText = body.replace(regex, "");
console.log(result);
var regex=“/”;
var originaltext=“1.在时间管理能力方面对男性和女性进行了比较。
自变量为研究对象。
这一说法正确吗”;
var resultText=body.replace(regex,“”);
控制台日志(结果);
使用正则表达式:
var cleanContent=content.replace(/(]+>)/ig,”代码>函数htmlTagremove(文本){
var cont=document.createElement('div'),
cont.innerHTML=文本;
返回$(cont.text();
}
htmlTagremove(“test”);
这一个正在检查特殊字符
var$string='a href=“link”aaa/a';
var$string2='';
风险值$string3='BBBBB';
var$string4='partialmyString.replace(/]*>?/gm')代码>您可以使用模块删除HTML并获取文本。这是一个非常简单明了的解决方案。我不认为它是重复的。因为它也是在Javascript下标记的。我将html字符串保存在Javascript变量中。我想从这个变量副本中删除这些标记:空白和/或属性呢?例如,
回答了OP确切的问题,但是如果标记具有属性,则正则表达式在这里需要是/(]*>)/g
,变量似乎已经生成,我想很容易知道我们必须删除哪些元素。。。即使它稍微复杂一点,我也认为这种方法会起作用:它是基于所问问题的基础,可以很容易地进行修改。谢谢你,这是最好的答案,因为它是纯javascript,你的regexp可以处理所有html标记。对这个regex的改进是:(]+)>)|([^>]+)这将删除标准html标记以及任何转义标记。请不要使用正则表达式处理html。这是一个错误,你可能会因此而被严重烧伤。HTML不是一种常规语言,而一个正则表达式,即使有数千个字符长,也不足以满足它的需要。您需要一个真正的解析器,或者利用浏览器/DOM的功能。作为攻击者,我可以很容易地让HTML通过这两个示例。regex也可以删除吗?请记住,如果内容具有类似div的内容,则在运行此代码后它将成为标记。这不会删除
@PHPMaster5000:是的。你的HTML是什么样子的?
content = $(hiddenElement).html($(hiddenElement).html(content).text()).text();
var regex = "/<(.|\n)*?>/";
var originaltext = "1. Males and females were compared in terms of time management ability. <br><br>The independent variables were the people in the study.<br><br> Is this statement correct";
var resultText = body.replace(regex, "");
console.log(result);
function htmlTagremove(text) {
var cont = document.createElement('div'),
cont.innerHTML=text;
return $(cont).text();
}
htmlTagremove('<p><html>test');