我在选择与先前选择相反的内容时遇到了困难
字符串:
{
"suggest": {
"my_suggestion": {
"prefix": "FR0011597335",
"completion": {
"field": "suggest"
}
}
}
}
我设法通过以下方式选择评论:
<!-- Button --><div><button></div><!-- Input --><input type="text">
现在,我想选择除注释之外的所有内容。所需的输出
/<!--[\s\w]*-->/
我的问题是,正则表达式搜索字符串是什么,以便选择前面提到的输出?
答案 0 :(得分:2)
我相信与Preg_SPLIT_NO_EMPTY的php preg_split等效的js就像这样:
yourstring.split(/<!--[\s\w]*-->/g).filter(n => n)
jsfiddle:https://jsfiddle.net/75rLaeoj/
使用dom解析器可能要复杂一些,因为您要将一个或多个标签组合在一起。
答案 1 :(得分:1)
一种简单的求逆方法是替换正则表达式选择:
let html = '<!-- Button --><div><button></div><!-- Input --><input type="text">'
let noComments = html.replace(/<!--[\s\w]*-->/g,"")
console.log(noComments) //<div><button></div><input type="text">
答案 2 :(得分:-1)
我发现,以前使用Regex仅选择第一个实例时遇到了问题,但我发现缺少全局标记/.../g
求逆的答案是/<[^!]*?>.*?>/g
var s = '<!-- Button --><div><button></div><!-- Input --><input type="text">'
console.log(s.match(/<[^!]*?>/g))