javascript - 从javascript中的html字符串获取子字符串

标签 javascript html regex string substring

我正式宣布自己是个笨蛋!!!我对正则表达式很在行,但是 javascript 正则表达式让我很紧张:

我有以下 html 字符串:

htmlString = '<div class="aa">TextOne</div><ul><li>one</li></ul>';

我需要根据 aa 类 div 中的文本获取 UL 元素中的所有内容。

我尝试了以下方法:

textItem = 'TextOne';

ulRegex = new RegExp('<div class="aa">'+textItem+'</div><ul>(.*)</ul>', "igm");
ul = ulRegex.exec(htmlString);

在写这个问题时,我在我的正则表达式中发现了一个错误(一个微小的额外字符),它没有让它匹配但是对于所有寻找特定内容的人来说 - javascript/正则表达式/html 字符串/html 子字符串 - 它工作正常.

已编辑

我很感谢为此添加的所有内容 - 但我正在使用正则表达式还有一个额外的方面 - 我正在匹配一个文本项,我首先通过一个正则表达式模式的变量获取该文本项。

解决方案

在收到一些提示和建议后,我想出了以下可能对其他人也有帮助的建议:

htmlString = '<div class="aa">TextOne</div><ul><li>one</li></ul>';

textItem = 'TextOne';

tempdiv = $('<div/>'); 
tempdiv.html(htmlString);
ul = tempdiv.find('div.aa:contains('+textItem+')').next('ul');

$('#res').append(ul);

http://jsfiddle.net/sdXpJ/

下一个 ul 很重要,因为它解决了有关嵌套 UL 和任何其他基于正则表达式的解决方案的问题,在这些解决方案中我无法匹配第一级 UL(具有一个或多个内部 UL)。

最佳答案

解决方案

在收到一些提示和建议后,我想出了以下可能对其他人也有帮助的建议:

htmlString = '<div class="aa">TextOne</div><ul><li>one</li></ul>';

textItem = 'TextOne';

tempdiv = $('<div/>'); 
tempdiv.html(htmlString);
ul = tempdiv.find('div.aa:contains('+textItem+')').next('ul');

$('#res').append(ul);

http://jsfiddle.net/sdXpJ/

“下一个 ul”很重要,因为它解决了有关嵌套 UL 和任何其他基于正则表达式的解决方案的问题,在这些解决方案中我无法匹配第一级 UL(具有一个或多个内部 UL)。

关于javascript - 从javascript中的html字符串获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636867/

相关文章:

javascript - Sails.js Assets 传送到 http

javascript - JS 中嵌套三元运算符的替代方案

python - 正则表达式匹配python中方括号中的数字

html - 试图防止图像溢出

Python删除文本行#1直到正则表达式

arrays - 替换数组中的字母

javascript - 如何检查变量是否未定义(已声明但未赋值)与未声明(不存在)?

javascript - 你能推荐一个显示日历小部件的 JQuery 插件吗?

html - 在某个点后停止页面缩放

javascript - 如何删除ajax响应函数中的li元素