javascript - 我的正则表达式有什么问题?

标签 javascript regex

我有一个字符串trackingObj它存储了一组信息。(HTML代码,但是代码里面有很多像\r\n这样的字符,例如: <div id=\"MainBox\">\r\n

我想从那个巨大的字符串中获取以下内容:

<td id='theTrackInfo'><strong><span id='HeaderNum'>aaa</span><span id='HeaderFrom'> <br>bbb</span><span id='HeaderDes'> <br>ccc</span><span id='HeaderItem'> <br>ddd</span><span id='HeaderState'> <br>eee</span><span id='HeaderADate'><br>fff</span><span id='HeaderSign'><br>ggg</span><DIV id='HeaderExtra'> </DIV></strong></td>

我尝试使用 html() 将整个字符串附加到 DOM,但其中包含非法字符,因此我无法使用 jQuery 执行 DOM 操作。

只是考虑使用纯正则表达式来获得我需要的东西。我尝试了以下方法:

var Info = new RegExp("<td>\sid='theTrackInfo'>[\s\S]*?\/td>", "g");
var InfoHtml = theTrackInfo.exec(trackingObj);
console.log(InfoHtml);

我也尝试过:

var InfoHtml = trackingObj.match(/<td>\sid='theTrackInfo'>[\s\S]*?<\/td>/gi);
console.log(InfoHtml);

不起作用。我缺少什么?

==================更新============================

大家好,感谢您的所有回答。

我尝试使用 DOMParser 使其最终工作:

var parser = new DOMParser();
var html = parser.parseFromString(ProcessedStrings,"text/html");
var info = $(html).find("#theTrackInfo");
console.log($(info).html());

有人可能会说 jQuery 应该做同样的事情。 问题是,trackingObj通过使用 ajax 调用检索,当我尝试使用 jQuery 附加方法时,它附加到 DOM,在控制台中,它说:“意外的 token 非法”

但我仍然会选择正则表达式答案作为这个问题的正确答案。

==================更新2============

嗨,我研究了 Tom Fenech 的方法,它也适合我。 该错误可能是由于尝试将代码附加到 div 引起的。 与 jQuery 本身无关。

最佳答案

如果您已经在使用 jQuery,则只需将字符串解析为 HTML,然后提取您感兴趣的部分:

var trackingObj = "<table><tbody><tr><td id='theTrackInfo'><strong><span id='HeaderNum'>aaa</span><span id='HeaderFrom'> <br>bbb</span><span id='HeaderDes'> <br>ccc</span><span id='HeaderItem'> <br>ddd</span><span id='HeaderState'> <br>eee</span><span id='HeaderADate'><br>fff</span><span id='HeaderSign'><br>ggg</span><DIV id='HeaderExtra'> </DIV></strong></td><tr></tbody><table>";

var html = $.parseHTML(trackingObj);
var td = $(html).find('#theTrackInfo').get()[0]; // get native DOM element
console.log(td.outerHTML);

关于javascript - 我的正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142107/

相关文章:

regex - Emacs Lisp 相当于 JavaScript 的 RegExp#exec

javascript - 如何从javascript中的字符串中提取 float

php - UTF-8 模式正则表达式中的非 ASCII 字符

python - 如何在Python中删除数据框中单词的精确匹配?

javascript - 表单 onSubmit 返回 false 在 Chrome 中不起作用

来自带有未转义引号的动态数据的 JavaScript 字符串声明

javascript - 重新排序和过滤对象数组

javascript - 如何在用户交互时停止 scrollLeft 动画

javascript - angular2无法使用路由器导航

python - 在逗号处拆分字符串,除非在括号环境中