Multiline text to escaped Javascript string
Transforms a string to Javascript string declaration
by Adrien Joly
HTML
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<div ng-app>
<div ng-controller="MainCtrl">
<textarea data-ng-model="original" rows="30"></textarea>
<textarea rows="30" readonly>{{ jsConcatEscape(original) }}</textarea>
</div>
</div>
JavaScript
function MainCtrl($scope) {
$scope.original = '';
$scope.jsConcatEscape = function(text) {
// http://beckism.com/2010/09/splitting-lines-javascript/
var lines = text.match(/^.*([\n\r]+|$)/gm);
var concatenated = '';
lines.forEach(function(line, i, lines) {
line = line.replace(/[\r\n]/g, '\\n');
concatenated += /*escape*/(line.replace(/"/g, '\\"'));
})
return '"' + concatenated + '"';
};
};