获取包含在<b>中的文本,并使用jquery分隔

时间:2016-10-19 09:41:54

标签: javascript jquery html text

我以html字符串格式收到服务的输出,如下所示:

"<html>↵<h1>↵Example : ↵<br>Explanation↵</h1>↵<hr>↵<b>key1 :  ABCD <br>key2 : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>↵</html>↵"

然后我解析html以获取标记<b>,如下所示:

var input="<html>↵<head>↵<h1>↵Example : ↵<br>Explanation↵</h1>↵<hr>↵<b>key1 :  ABCD <br>key2 : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>↵</html>↵";
var parsed= $.parseHTML(input);

然后我发现解析为一个html标签数组:

<b>key1 :  ABCD <br>Date : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>

现在我需要获取日期的值以便进一步操作 任何人都可以帮助我使用js / jquery获取日期(例如2016-10-18-18-38-29)的值吗?

4 个答案:

答案 0 :(得分:3)

使用此正则表达式

var Date= str.match(/(\d{4})-(\d{2})-(\d{2})-(\d{2})-(\d{2})-(\d{2})/g);

答案 1 :(得分:1)

您可以使用Node.nextSibling属性在元素后面获取兄弟文本。它返回Date : 2016-10-18-18-38-29,您需要从字符串中删除其他部分。

使用String.prototype.split()获取:字符后的字符串。

$(parsed).find("br:first")[0].nextSibling.textContent.split(":")[1].trim();

var date = $("b > br:first")[0].nextSibling.textContent.split(":")[1].trim();
console.log(date);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<b>key1 :  ABCD <br>Date : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>

答案 2 :(得分:1)

var myString = "<b>key1 :  ABCD <br>Date : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>";

//Break string from date
var myDate = myString.substr(myString.indexOf("Date : ")+"Date : ".length);

//Remove string after date
myDate = myDate.substr(0,myDate.indexOf("<br>"));
console.log(myDate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 3 :(得分:0)

您可以使用以下代码

var input="<html>↵<head>↵<h1>↵Example : ↵<br>Explanation↵</h1>↵<hr>↵<b>key1 :  ABCD <br>key2 : 2016-10-18-18-38-29<br>Output: /acddfd/example</b>↵</html>↵";

var b_text = $(input).find( 'h1' ).text();