将HTML代码与javascript断开链接的正则表达式
regular expression to unlink html code with javascript
我很抱歉,我不敢相信这个问题在stackoverflow中没有解决,但是我一直在寻找很多,我没有找到任何解决方案。
我想用正则表达式改变HTML代码:
testing <a href="url">anchor</a>
testing anchor
只有我想在不使用DOM函数的情况下取消链接文本代码,代码在字符串中而不是在文档中,我不想删除a
的其他标签。
如果您真的不想使用DOM函数(为什么?)您可以使用
str = str.replace(/<[^>]*>/g, '')
你可以使用它,如果你相当有信心,你没有一个更复杂的HTML,但它会失败,在许多情况下,例如一些嵌套的标签,或>
在一个属性。你可以用更复杂的正则表达式来解决一些问题,但在一般情况下,它们并不是适合这项工作的工具。
如果你不想删除a
以外的其他标签,这样做:
str = str.replace(/<'/?a( [^>]*)?>/g, '')
这改变
<a>testing</a> <a href="url"><b>a</b>nchor</a><div>test</div><aaa>E</aaa>
testing <b>a</b>nchor<div>test</div><aaa>E</aaa>
我知道你只想要正则表达式,这里有一个使用DOM方法的简单解决方案。
var a = document.createElement("div");
a.innerHTML = 'testing <a href="url">anchor</a>';
var wordsOnly = a.textContent || a.innerText;
这在复杂的用例中不会失败,允许嵌套标签,并且非常清楚发生了什么:
- 嘿浏览器!创建元素
- 把HTML放进去
- 只给我文本,这就是我现在想要的。
注意:
我们创建的元素不会被添加到实际的DOM中,因为我们没有将它添加到任何地方,它将保持不可见。下面是演示其工作原理的示例:
如前所述,不能用正则表达式解析HTML。主要原因是HTML元素嵌套和正则表达式不能处理这个问题。
也就是说,在我将提到的一些限制条件下,您可以执行以下操作:
string.replace (/('b'w+'s*)<a's+href="([^"]*)">(.*)<'/a>/g, '$1 $3')
这要求在标记之前有一个单词,单词和标记之间的间距是可选的,除了<a>
标记中指定的href
之外没有其他属性,并且您接受<a>
和。
您可以从字符串中创建一个DOM对象,使用DOM方法进行解析,而无需将该DOM对象附加到文档
相关文章:
- 从链接进行正则表达式检查
- 正则表达式 jquery 将数字替换为链接
- 正则表达式使链接可点击(仅在“href”而不是“img src”中)
- 用Javascript正则表达式替换iframe到可点击的YouTube链接
- 获取除带有正则表达式的指定类名之外的所有链接
- Javascript 正则表达式替换为超链接
- 正则表达式将 URL 转换为链接
- 删除所有电子邮件,外部链接,联系电话和几个词正则表达式
- 获取与 JavaScript 正则表达式的链接
- Javascript 正则表达式用于替换页面上所有链接 href 中的 & 符号
- 正则表达式查找以文本而不是链接形式编写的 URL
- 正则表达式 - 不后跟 - 链接
- Javascript、正则表达式和链接
- 查找具有正则表达式的链接文本
- 这个正则表达式是什么意思.检查http或https超链接就足够了吗
- Javascript-用引号正则表达式包装链接
- 用于获取链接文本的正则表达式
- JavaScript页面上的所有链接都使用正则表达式
- 将HTML代码与javascript断开链接的正则表达式
- 用正则表达式标记字符串中的文本,但不包括链接