我在页面上设置了几个HTML块,如:
<p class="something">
<a href="http://example.com/9999">text 1 2 3</a>
<a href="http://example.com/2346saasdf">text 3 4 5</a>
(9999)
<a href="http://example.com/sad3ws">text 5 6 7random</a>
</p>
Run Code Online (Sandbox Code Playgroud)
我想用它们得到括号中的数字.我不得不承认我以前从未真正使用过正则表达式 - 阅读它,看过它的例子但是我自己没有使用它.无论如何,我创造了这个有点环顾四周:
<p class="something">(.*?)</p>
这正确地得到整个<p>块,但是,我只想要(9999)(括号完整).我真的不确定如何得到它.
假设页面上的其他元素也可能在括号中有数字(但它们不会包含在这种格式中),并且HTML将保持有效且一致,我该如何获取它?
我知道这对于之前使用过正则表达式的人来说可能很容易,但对于解决方案,我会欣赏每个角色捕获的细节,以便我可以从中学习.
相反,使用HTML解析器,然后只需读取所需<p>块中的文本(非标记)内容.
jQuery是一个相当不错的HTML解析器,因此您可以使用以下命令获取存储在变量中的所需文本x:
var x = $('p').clone().find('a').remove().end().text();
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你不能使用jQuery让你的生活轻松,你可以在DOM使用原始JavaScript:
var y = document.getElementsByTagName("p")[0].cloneNode(true);
var x = "";
for(var k in y.childNodes){
if(y.childNodes[k].nodeType == 3){
x += y.childNodes[k].textContent;
}
}
x = x.trim();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |