我有一个像这样存储在变量中的html代码段,例如
var parse= 'Hello<i class="emoji emoji_smile" title=":smile:"></i><i class="emoji emoji_angry" title=":angry:"></i>World'
现在我要解析这个html并且它必须获取标题的值并仅用标题替换标记然后使用javaScript或jQuery返回结果
var parsed = Hello:smile::angry:world
有人能指出我如何做到正确的方向吗?这样我才能解决它?
答案 0 :(得分:1)
你可以使用replace
方法和regexp:
var parse= 'Hello<i class="emoji emoji_smile" title=":smile:"></i><i class="emoji emoji_angry" title=":angry:"></i>World'
var result = parse.replace(/<i.*?title="(.*?)"><\/i>?/g, "$1");
console.log(result); //Hello:smile::angry:World
这是一个工作小提琴:https://jsfiddle.net/ste8s7eL/
答案 1 :(得分:0)
您可以将其包装在容器中并映射它以加入它。那么,这会给:
var parse= 'Hello<i class="emoji emoji_smile" title=":smile:"></i><i class="emoji emoji_angry" title=":angry:"></i>World';
var parsed = $('<div/>', {html:parse}).contents().map(function(){
return this.title || this.nodeValue;
}).get().join('');
$('body').append(parsed);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>