我使用Underscore模板(基於John Resig的Microtemplate),並且每當我嘗試用它替換換行符時,我都會出現奇怪的行爲。舉例來說,如果我有文字是這樣的:下劃線/微模板替換換行符 - 奇怪的行爲
var message = 'Line1\r\n\r\nLine2';
我可以適當更換符合BR標籤打破,如果我這樣做:
$('#example1_no_template').html(message.replace(/\r?\n/g, '<br />'));
但是,如果我嘗試更換下劃線內換行下面的示例代碼模板,我沒有得到任何BR標籤插入:
<script id="template1" type="text/html">
<%= message.replace(/\r?\n/g, '<br />') %>
</script>
<script>
var template1 = _.template($('#template1').html());
$('#example1_template').html(template1({ message: message }));
</script>
而且奇怪的是,如果我更改模板在我的正則表達式以下內容,然後我得到各種BR標籤的我nserted所有的地方:
<script id="template3" type="text/html">
<%= message.replace(/[\r\n?]/g, '<br /><br />') %>
</script>
所有這些行爲都顯示在這個小提琴:http://jsfiddle.net/GHtDY/5/
任何想法是怎麼回事?是否可以更換模板內的換行符?
優秀的解釋。謝謝。 –