使用regex选择HTML文本元素
select HTML text element with regex?
我想在HTML文档中查找©
,基本上得到版权归属的实体。
版权线显示了几种不同的方式:
<p class="bg-copy">© 2011 The New York Times Company</p>
或
<a href="http://www.nytimes.com/ref/membercenter/help/copyright.html">
© 2011</a>
<a href="http://www.nytco.com/">The New York Times Company</a>
或
<br>Published since 1996<br>Copyright © CounterPunch<br>
All rights reserved.<br>
我想忽略日期和中间的标签,只得到"纽约时报公司"或"Counterpunch"。
我没有找到太多关于将regex与JavaScript或JQuery一起使用的信息,尽管我觉得它可能会导致严重的头痛。如果有更好的方法,请告诉我。
对于一个健壮的解决方案,您可能需要DOM导航和一些启发式方法的组合。您的示例可以用regex解决,但还有很多可能的场景。。。
©['s'd]*(?:<'/.+?>[^>]*>)?([^<]*)
适用于您的三个样本。但只适用于他们和类似的情况。
请参阅卢布
说明:
© // copyright symbol
['s'd]* // followed by spaces or digits
(?:</.+?>[^>]*>)? // maybe followed by a closing tag and another opening one
([^<]*) // than match anything up to the next tag
关于如何在javascript中使用jquery,请参阅以下答案。基本上,您可以使用match(/regex/(函数:
var result = string.match(/©['s'd]*(?:<'/.+?>[^>]*>)?([^<]*)/)
$('*:contains(©)').filter(function(){
return $(this).find('*:contains(©)').length == 0
}).text();
在这里测试http://jsfiddle.net/unloco/kGPYA/
相关文章:
- 如何在浏览器中选择所有*renderable*文本元素
- 如何使用RaphaelJS将文本元素约束在正方形中
- 使用d3.js删除svg文本元素
- 替换动态生成的文本元素
- Protractor测试:如何设置登录表单中文本元素的值
- 如何获取与提交表单上所选复选框相同行的文本元素
- SVG文本锚点设置使文本元素移动
- Svg文本元素被另一个Svg元素重叠
- Imacros替换文本元素
- Windows 8 上的 Safari 5 反转 SVG 上的所有文本元素
- 运行 PHP 代码以根据文本元素的值从数据库中获取值
- 我想要输入文本元素中的实时更改事件
- 如何使用 jQuery 忽略文本元素上的特定字符
- RaphaelJS中的文本元素不会在触摸设备上拖动
- d3 - 旋转数组中的文本元素
- 如何通过单击复选框将文本元素从输入复制到另一个输入
- .text() 给出元素中的所有文本元素
- 在函数内调用对象文本元素
- 移动文本元素与弧拉斐尔JS
- 编辑文本元素时,将重置后端用户设置