Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery函数中使用正则表达式修饰符?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 如何在jquery函数中使用正则表达式修饰符?

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>

我有这个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>
<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()
。否则,只需按照我在回答中所说的选项之一更改正则表达式中的
。这是正确的答案,非常感谢我的朋友