我使用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/
任何想法是怎么回事?是否可以更换模板内的换行符?
优秀的解释。谢谢。 –