Javascript 如何在jquery函数中使用正则表达式修饰符?
我有这个html内容Javascript 如何在jquery函数中使用正则表达式修饰符?,javascript,jquery,regex,Javascript,Jquery,Regex,我有这个html内容 <!DOCTYPE html> <html> <head> </head> <body> <center><img style="margin-left: auto; display: block; margin-right: auto;" src="../img/escudocaba.png" alt="#" width="470" height="90" /></center>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<center><img style="margin-left: auto; display: block; margin-right: auto;" src="../img/escudocaba.png" alt="#" width="470" height="90" /></center>
<h1>Hoddda</h1>
</body>
</html>
霍达
我需要在不包含body标签的情况下提取body的内容。我制作了这个与之完美匹配的正则表达式:
/<body[^>]*>(.*?)<\/body>/is
/]*>(.*)/is
正如你在这个网站上看到的
但是当我使用它的时候
var bodyHtml=$editor.val().match( /<body[^>]*>(.*?)<\/body>/is);
var-bodyHtml=$editor.val().match(/]*>(.*)/is);
我没有得到任何结果……还尝试了一个类似的正则表达式,它最终没有使用相同的格式,也没有修改器,结果是匹配的
var bodyHtml=$editor.val().match(/(?:.(?!<\s*body[^>]*>))*\>.+/);
var-bodyHtml=$editor.val().match(/(?:(?!]*>)*\>。+/);
例如返回
<center><img style="margin-left: auto; display: block; margin-right: auto;" src="../img/escudocaba.png" alt="#" width="470" height="90" /></center>
在这种情况下,如何在jquery函数中使用正则表达式修饰符?。谢谢JS中不存在s修饰符。请尝试使用[\s\s]而不是点,如下所示: 像这样:
<body[^>]*>([\s\S]*?)<\/body>
]*>([\s\s]*?)
在正则表达式的javascript风格中,
与新行不匹配
要解决这个问题,您可以使用[^]
或[\s\s]
或[\d\d]
或(?:。\124n)
请尝试以下代码:
var bodyHtml = $editor.val().match(/<body[^>]*>([\s\S]*?)(<\/body>|$)/i)[1];
var bodyHtml=$editor.val().match(/]*>([\s\s]*?)(|$)/i)[1];
您只需执行:$('body').html()即可获得不带body标记的body的内容是。。。那是一个center
标签吗?现在是哪一年?!?哦,是的,还有这个:,只需使用$('body').html()
正如Dino所建议的那样。这不好……我需要编辑器画布的主体,而不是整个页面的主体——我正在谈论的html结构(位于id为=“#plantillaEditor”)的文本区域内的主体)about位于整个页面的主html中……如果html文档很长并且没有关闭,则此正则表达式将失败。
。这不起作用,它返回“Undefined”@JAF。我怀疑刚才的$editor.find('body').html()
应该起作用了,我的朋友……如果我放console.log($('textarea').val());我得到了Hodddaaa@JAF。最后一次尝试:$($editor.val()).find('body').html()
。否则,只需按照我在回答中所说的选项之一更改正则表达式中的
。这是正确的答案,非常感谢我的朋友