簡體   English   中英

JavaScript正則表達式 - 匹配除了之外的所有內容

[英]JavaScript Regular Expression - Match Everything Except

我正在編寫一個JavaScript模板解析器,我接近最終的解決方案,但是我想在模板的綁定塊中允許空白(我與正則表達式匹配)。

現在我有以下內容:

var codeblock = new RegExp("%\{[\S)]+\}%", 'g');

並給出一個模板行,如下所示:

<td align="right" style="width: 123px;">%{toFixedEx(#{extendedPrice()}#,2,2)}%</td>

將匹配:

%{toFixedEx(#{extendedPrice()}#,2,2)}%

但是我想在%{}%之間允許空格和換行符,所以我嘗試了以下正則表達式:

var codeblock = new RegExp("%\{[\S\s)]+\}%", 'g');

最終匹配:

%{toFixedEx(#{surcharge()}#,2 ,4)}%</td>
<td align="right" style="width: 123px;">%{toFixedEx( #{extendedPrice()}#,2,2)}%

我想要做的是匹配以下內容:

 %{
    if (condition) {
       toFixedEx(#{surcharge()}#,2 ,4)
    }
    else {
       toFixedEx(0,2,4)
    }
 }%

匹配結束於}%而不是繼續到模板中的最后一個右括號。 我嘗試過子跟蹤的字符類,但它看起來不像是在JavaScript中工作。

var codeblock = new RegExp("%\{[\S\s]+?\}%", 'g');

+? *? 意思是:盡可能少地匹配以滿足RE下一部分的條件。

我還從你的RE中刪除了括號, )因為[\\S\\s]匹配每個字符(包括換行符)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM