0
之外的所有內容
我在寫一個JavaScript模板解析器,並且我接近最終解決方案,但是我想允許我的模板的綁定塊中的空白(我與正則表達式匹配) 。JavaScript正則表達式 - 匹配除
現在,我有以下幾點:
var codeblock = new RegExp("%\{[\S)]+\}%", 'g');
,並給予模板線,看起來像:
<td align="right" style="width: 123px;">%{toFixedEx(#{extendedPrice()}#,2,2)}%</td>
將匹配:
%{toFixedEx(#{extendedPrice()}#,2,2)}%
但是我想允許空白並在%{
和}%
之間換行,所以我嘗試了以下注冊表EXP:
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中工作。
謝謝,正是我在找的東西。 – dmck
另一個說明(對未來的讀者):許多程序員使用'.',期望儘可能匹配。不過,'.'與換行符不匹配。要匹配所有內容,應該使用'[\ S \ s]',這意味着「任何非空白字符*或*任何空格字符」。 –