[英]Regular express to remove html tags and characters
我需要有关正则表达式的帮助,该正则表达式将从字符串中删除所有html标记和字符。
在下面显示的代码中,我具有oldStr:
在单击“替换”按钮时,我想将oldStr更改为“ Hello”,并删除“ <”,“>”和任何类型的html标记,如我的字符串所示。
我该如何实现?
这是我的代码:
$(document).ready(function(){ var oldStr = '<p><a>Hello</a></p>'; $('#old').text(oldStr); $('#replaceBtn').click(function(){ var newStr = mystr.replace('<', ''); $('#new').text(newstr); }); });
div{ height: 50px; width: 300px; border: 1px solid grey; border-radius: 5px; margin: 10px; padding: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="old"></div> <br /> <div id="new"></div> <br /> <button id="replaceBtn">Replace</button>
请尝试这个
var oldString = '<p><a>Hello</a></p>'; var newString = $(oldString).text();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
试试下面的代码。 https://jsfiddle.net/vineeshmp/do83rje2/
$(document).ready(function(){
var oldStr = '<p><a>Hello</a></p>';
$('#old').text(oldStr);
$('#replaceBtn').click(function(){
var newStr = $('<textarea />').html(oldStr).text();
$('#new').text( $(newStr).text());
});
});
var oldStr = '<p><a>Hello</a></p>>';
var indexStart = oldStr.search("H");
var indexEnd = oldStr.search("o");
var newStr = oldStr.substring(indexStart,indexEnd +1);
我认为这就是您想要做的。
快速运行:
转动<
和>
字符转换为更容易阅读的格式。 我们这样做是为了使我们可以更轻松地摆脱标签或标签中的任何信息。
我敢肯定,比起像我那样链接方法,有一种更快的方法来替换这两个方法,但是我刚醒过来,这就是结果。
接下来是正则表达式,有点混乱,但让我尝试解释一下:
“找到不等号之间的任何内容,但不要贪心-匹配找到的第一个符号, 或匹配格式'&(some word character);'的任何内容”,然后我们将所有匹配的内容替换为空字符串。 剩下的应该只是一个包含元素文本的字符串。
作为替代方案,您可能只想遵循前两个replace
调用,然后仅使用Nimish的答案,我认为这将更加可靠,因为jQuery的HTML解析器比我编写的要好得多。
var oldStr = '<p><a>Hello</a></p>'; var newStr = oldStr.replace(/</g,'<').replace(/>/g,'>').replace(/(<(.*?)>|&\\w+;)/g,''); alert(newStr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.