我需要一个正则表达式的帮助,它会删除字符串中的所有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);
});
});
&#13;
div{
height: 50px;
width: 300px;
border: 1px solid grey;
border-radius: 5px;
margin: 10px;
padding: 10px;
}
&#13;
<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>
&#13;
答案 0 :(得分:2)
请试试这个
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>
答案 1 :(得分:1)
尝试以下代码。 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());
});
});
答案 2 :(得分:0)
var oldStr = '<p><a>Hello</a></p>>';
var indexStart = oldStr.search("H");
var indexEnd = oldStr.search("o");
var newStr = oldStr.substring(indexStart,indexEnd +1);
答案 3 :(得分:0)
我认为这就是你要做的事。
快速向下跑:
将>
和replace
字符转换为更易于阅读的格式。我们这样做是为了让我们可以更轻松地删除标签或其中的任何信息。
我确信有更快的方式来替换它们,而不是像我一样链接方法,但我刚刚醒来,所以这就是出来的。
接下来是正则表达式,这有点乱,但我试着解释一下:
“在不等式符号之间找到任何内容,但不要贪婪 - 匹配您找到的第一个 OR 匹配格式'&amp;(某些单词字符)的任何内容;'”然后我们只需用空字符串替换与之匹配的任何内容。你剩下的应该只是一个包含元素文本的字符串。
作为替代方案,您可能只想跟随前两个var oldStr = '<p><a>Hello</a></p>';
var newStr = oldStr.replace(/</g,'<').replace(/>/g,'>').replace(/(<(.*?)>|&\w+;)/g,'');
alert(newStr);
调用,然后只使用Nimish的答案,我觉得这样会更可靠,因为jQuery的HTML解析器比我写的要好几英里。 / p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
sapply