从带有正则表达式的body元素中选择单个文本字符

时间:2019-04-25 21:55:47

标签: javascript regex dom text

使用正则表达式javascript或jQuery,如何选择一个单独的字符或在body元素中?我们注意到,在网站底部的页脚后面有一个随机的“ s”。我们不知道它的来源-这真的很奇怪,因为它在body元素中,但是它没有与任何子元素绑定。它只是漂浮在一些脚本标签之间。

screenshot of the 's' after the footer

页脚后的“ s”屏幕截图


here is the 's' in the DOM in between scripts

这是脚本之间DOM中的“ s”


可能是来自插件-但与此同时,我们希望可以将其隐藏起来,直到找到罪魁祸首。

我正在尝试首先在控制台中选择此元素,但没有成功。

jQuery('body').filter( function(){ return /([s]$)/g.test( jQuery(this).text() ) } )

但是,我无法选择此元素。有人知道我该怎么做吗?非常感谢

2 个答案:

答案 0 :(得分:1)

如果s是结束脚本标记之后的字符串的开头,并且是该行上的唯一文本,则可以使用捕获组并在替换中使用该组$1

(<\/script>\s*\n)s$
  • (捕获组
    • <\/script>\s\n匹配结束脚本标记,后跟0+倍的空白字符和换行符
  • )关闭捕获组
  • s匹配s
  • $字符串结尾

Regex demo

const s = `<script type="text/javascript"><\/script>
s`;

console.log(s.replace(/(<\/script>\s*\n)s$/, "$1"));

答案 1 :(得分:0)

如果您的应用程序是php,请尝试在php文件的开头搜索类似的内容。 这是一段代码,将仅回显而不执行。

s<?php