Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript字符串中删除HTML标记_Javascript_Jquery - Fatal编程技术网

从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='partial
myString.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');