如何在javascript中解析存储为变量的html

时间:2016-04-15 14:06:07

标签: javascript jquery html

我有一个像这样存储在变量中的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

有人能指出我如何做到正确的方向吗?这样我才能解决它?

2 个答案:

答案 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>