使用正则表达式删除文本中的<跨度>和</跨度>
Remove <span> and </span> in Text using RegEx
我正在尝试获取<a>
元素中可用的文本。我已经使用innerHTML来检索内部文本,但是在少数<a>
元素中,内部文本放置在<span>
元素中。
在检索文本值时,它与输出字符串一样<span>sample text</span>
。谁能帮我使用 RegEx 删除输出字符串中的<span></span>
,以便我的输出字符串中只能有sample text
。
<a href="#"><span>Sample Text</span></a>
注意:我没有在页面中使用任何Javascript库。
innerText
或textContent
(取决于浏览器)获取不带span标签的元素文本:
var elem = document.getElementsByTagName('a')[0],
text = ('innerText' in elem)? 'innerText' : 'textContent';
var content = elem[text];
小提琴
如果可以包含 jQuery,则可以使用 - $("a").text()
而不使用任何正则表达式。
而使用纯粹的JavScript——
/* elem you can get in many ways, by id, by tagname or by class etc.
I am using tagName for your specific case
*/
var elem = document.getElementsByTagName('a')[0],
/* use innerText or textContent, whichever is available in browser */
var content = elem.innerText || elem.textContent;
您可以使用
querySelectorAll查找包含<span>
子项的所有<a>
标签,并根据需要获取文本:
var elems = document.querySelectorAll("a > span");
for(var e in elems) {
var element = elems[e];
var aTag = element.parentNode;
if(aTag.innerText) aTag.innerText = element.innerText;
else aTag.textContent = element.textContent;
}
这是一个jsFiddle来演示上述内容。
澄清一下,document.querySelectorAll
仅在IE8+(和大多数其他现代浏览器)上原生支持,但可以使用polyfill。
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用正则表达式删除文本中的<跨度>和跨度>
- 实现正则表达式查找javascript文件中的类的跨度
- jsp中使用javascript的正则表达式表单验证;(跨度)