Я использую шаблон Underscore (который основан на Microtemplate от John Resig), и всякий раз, когда я пытаюсь заменить его внутри, я получаю странное поведение. Например, если у меня есть текст:
var message = 'Line1\r\n\r\nLine2';
Я могу правильно заменить разрывы строк тегами br, если я это сделаю:
$('#example1_no_template').html(message.replace(/\r?\n/g, '<br />'));
Однако, если я попытаюсь заменить разрывы строк внутри шаблона Underscore с приведенным ниже примером кода, я не буду вставлять теги 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, вставленных повсюду:
<script id="template3" type="text/html">
<%= message.replace(/[\r\n?]/g, '<br /><br />') %>
</script>
Все эти поведения показаны в этой скрипте: http://jsfiddle.net/GHtDY/5/
Любая идея, что происходит? Можно ли заменить разрывы строк внутри шаблона?