Javascript正则表达式失败(循环?)

Javascript regex fails (loops?)

本文关键字:循环 正则表达式 失败 Javascript      更新时间:2023-09-26

我有以下文本:

<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title>test file</title><meta name="GENERATOR" content="LibreOffice 4.1.4.2 (Windows)"><meta name="CREATED" content="0;0"><meta name="CHANGED" content="0;0"><style type="text/css">
    <!--
        .nicEdit-main { margin-left:55px; margin-right:36px; margin-top:18px; margin-bottom:36px }
        P { margin-bottom: 0.21cm; direction: ltr; color: #000000; text-align: left; widows: 2; orphans: 2 }
        P.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU }
        P.cjk { font-family: "Arial", sans-serif; font-size: 12pt; so-language: zh-CN }
        P.ctl { font-family: "Symbol"; font-size: 12pt; so-language: hi-IN }
        TD P { margin-bottom: 0.21cm; direction: ltr; color: #000000; text-align: left; widows: 2; orphans: 2 }
        TD P.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU }
        TD P.cjk { font-family: "Arial", sans-serif; font-size: 12pt; so-language: zh-CN }
        TD P.ctl { font-family: "Symbol"; font-size: 12pt; so-language: hi-IN }
    -->
    </style><div type="HEADER">
    <p class="western" style="margin-bottom: 0.38cm; text-align: left;" align="LEFT">
    <br><br>
    </p>
</div><p style="margin-top: 0.42cm; margin-bottom: 0.42cm; text-align: center;" class="western" align="CENTER">    <span class="divider">
<b>He</b><i><span style="text-decoration: underline;"><b>-llo</b></span></i><b>,&nbsp;World!!!!!</b></span> </p><p style="margin-top: 0.42cm; margin-bottom: 0.42cm; text-align: center;" class="western" align="CENTER">  <span class="divider"><br></span> <span class="divider"><br></span>  </p><p style="margin-top: 0.56cm; margin-bottom: 0.56cm; text-align: center;" class="western" align="CENTER">  <span class="divider">
<font size="6"><b>h1&nbsp;h1&nbsp;h1</b></font></span>

下面的正则表达式:

/<style type="text'/css">+(.*?'n.*?)+<'/style>/i

当我在regex测试仪上测试它时,regex正确地找到<样式>lt/样式>部分但是,当我试图在实时代码上执行它时,它在regex.exe()上因超时而卡住并崩溃

我做错了什么?

style元素是一个常规HTML元素,可以使用常规JavaScript元素选择方法提取。例如,这将获得一个所有style元素的数组,其中type属性设置为"text/css":

document.querySelectorAll('style[type="text/css"]');

这将为您提供一个包含所有匹配元素的数组:

[
    <style type="text/css">...</style>,
    ...
]

要提取内部内容,只需在每个内容上使用innerText即可。例如,要获得第一个匹配的style元素的内容,您需要在[0]索引上调用innerText

document.querySelectorAll('style[type="text/css"]')[0].innerText;