[英]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.