dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
60 lines (56 loc) • 1.6 kB
JavaScript
define([
"dojo/_base/lang",
"../_base"
], function(lang,dd){
var htmlstrings = lang.getObject("filter.htmlstrings", true, dd);
/*=====
htmlstrings = {
// TODO: summary
};
=====*/
lang.mixin(htmlstrings, {
_linebreaksrn: /(\r\n|\n\r)/g,
_linebreaksn: /\n{2,}/g,
_linebreakss: /(^\s+|\s+$)/g,
_linebreaksbr: /\n/g,
_removetagsfind: /[a-z0-9]+/g,
_striptags: /<[^>]*?>/g,
linebreaks: function(value){
// summary:
// Converts newlines into `<p>` and `<br />`s
var output = [];
var dh = htmlstrings;
value = value.replace(dh._linebreaksrn, "\n");
var parts = value.split(dh._linebreaksn);
for(var i = 0; i < parts.length; i++){
var part = parts[i].replace(dh._linebreakss, "").replace(dh._linebreaksbr, "<br />");
output.push("<p>" + part + "</p>");
}
return output.join("\n\n");
},
linebreaksbr: function(value){
// summary:
// Converts newlines into `<br />`s
var dh = htmlstrings;
return value.replace(dh._linebreaksrn, "\n").replace(dh._linebreaksbr, "<br />");
},
removetags: function(value, arg){
// summary:
// Removes a space separated list of [X]HTML tags from the output"
var dh = htmlstrings;
var tags = [];
var group;
while(group = dh._removetagsfind.exec(arg)){
tags.push(group[0]);
}
tags = "(" + tags.join("|") + ")";
return value.replace(new RegExp("</?\s*" + tags + "\s*[^>]*>", "gi"), "");
},
striptags: function(value){
// summary:
// Strips all [X]HTML tags
return value.replace(dojox.dtl.filter.htmlstrings._striptags, "");
}
});
return htmlstrings;
});