Javascript正则表达式防止标签内部匹配
Javascript regular expression prevent matching inside tags
我必须匹配一个不在标签内的字符串。我正在工作的项目,我没有控制后端html渲染代码。我需要做的是为多个动态单词添加悬停功能。我创建了一个脚本,将在特定元素中查找这些关键词,并在悬停的标题标签中添加它们的描述。我的问题是,如果在其他关键字的标题标签中发现其他关键字。
我的JS:
var str = 'match <span title="not match here">match</span> match';
str.replace( /match/gim, 'ok' );
我不希望标题属性中的"match"字被替换,我想要的结果是:
'ok <span title="not match here">ok</span> ok'
我如何用Javascript做到这一点?
我试过下面的表达式,但它不适合我:
^((?!(".+")match)*$
您需要首先捕获标签,以便能够避免它们:
var result = str.replace(/(<[^>]*>)|match/gi, function (_,g1) {
return (g1==undefined)? 'ok':g1;
});
但是如果可以的话,使用DOM可能是最好的方法。
相关文章:
- JavaScript goto 标签如何使用内部循环
- Knockout.JS标签在foreach内部不起作用
- '这'内部'body'标签
- 如何在更新面板内部调用/触发javascript函数<触发器>标签
- 调用AngularJS内部<脚本>标签
- 如何找到内部标签的位置并将其聚焦
- 使用Javascript在模态内部的标签上显示错误消息不起作用
- .remove() 只删除内部 HTML,而不是像我想要的那样删除整个标签
- 如何从内部HTML字符串中删除隐藏的标签
- 如何使用 JavaScript 访问表单选择标签的 value 属性的内容或其内部文本
- 修剪标签上的空白区域,而不删除<输入>内部
- Javascript 从 iframe 内部的页面获取正文标签
- 如何从子标签内部使用 JavaScript 访问父标签
- 如何在 Web 组件中设置标签的内部文本
- 使用 jQuery 更改内部特定 Div 标签内的 TD 值
- 使用 jQuery 访问 TD 内部的 Div 标签
- 将UL内部的内容与列表项和锚标签<李><a></a></李>
- 如何在我的 标签中返回内部 HTML
- 内联Javascript比内部标签
- 使用jquery或javascript更改标签的内部标签类