根据RegEx模式筛选结果
Filter results from RegEx pattern
我开始开发Chrome扩展,当用户访问网页时,它会在某些表达式上添加链接。这是我迄今为止一直在使用的代码。
var input = document.body.innerHTML;
var pattern = /(?!<a[^>]*?>)('s|>)('.(gitignore|travis'.yml)|package'.json)(?![^<]*?<'/a>)'b/gm;
document.body.innerHTML = input.replace(pattern,"$1<a href='$2.html'>$2</a>");
链接文件是我正在进行的文档项目的一部分。由于我想避免使用隐藏文件(例如.gitignore.html
),我希望在$2
中过滤实际链接的点,但在链接文本中保留完整的表达式。
结果应该是这样的:
<a href="gitignore.html">.gitignore</a>
您可以得到以下正则表达式:
var input = document.body.innerHTML;
var regex = /<a's+(?!href='"(?:gitignore|htaccess|htpasswd)'.html'")[^>]*?>(?:'.(gitignore|htpasswd|htaccess))<'/a>/gm;
var output = input.replace(regex,"<a href='$1.html'>.$1</a>");
请在此处查看工作演示:https://regex101.com/r/aT7tA3/2
提示:
它不保留任何类、属性、rel。如果您需要这些,可以考虑使用解析器或像样的JS库(例如jQuery)。
相关文章:
- 计数HTML表中筛选的结果
- 返回带有筛选结果的新JSON对象
- 通过XML结果进行筛选
- 使用复选框筛选结果
- 复选框筛选结果
- 使用Javascript从DB中筛选结果,这将使DIV重新加载它'基于新参数的内容
- 使用jquery或JS从现有值集中筛选结果
- 如果文本筛选器在ng重复中未返回结果,则显示消息
- 如何根据其他下拉列表中的选择筛选下拉结果
- Sequelize是在筛选属性时对结果进行分组
- 如何使用URL参数筛选表中的结果
- j查询筛选结果
- 使用单个 ng 模型筛选结果并显示筛选方法
- 使用自定义按钮筛选结果
- 如何从视图中的控制器筛选结果
- j查询搜索结果筛选
- 角度筛选器 - 根据值数组筛选 JSON 结果
- JQuery 非重复后代(筛选出结果集中的所有父项)
- 筛选表并显示匹配结果 - jQuery
- 键控包含用于阻止结果的筛选