dojox.dtl.filter.strings.urlizetrunc
dojo.require("dojox.dtl.filter.strings");
defined in dojox/dtl/filter/strings.js
Usage
function (value, arg) (view source)
arg = parseInt(arg); return dojox.string.tokenize(value, /(\S+)/g|>, function(word){ var matches = dojox.dtl.filter.strings._urlize.exec(word); if(!matches){ return word; } var lead = matches[1]; var middle = matches[2]; var trail = matches[3]; var startsWww = middle.indexOf("www.") == 0; var hasAt = middle.indexOf("@") != -1; var hasColon = middle.indexOf(":") != -1; var startsHttp = middle.indexOf("http://") == 0; var startsHttps = middle.indexOf("https://") == 0; var firstAlpha = /[a-zA-Z0-9]/|>.test(middle.charAt(0)); var last4 = middle.substring(middle.length - 4); var trimmed = middle; if(arg > 3){ trimmed = trimmed.substring(0, arg - 3) + "..."; } if(startsWww || (!hasAt && !startsHttp && middle.length && firstAlpha && (last4 == ".org" || last4 == ".net" || last4 == ".com"))){ return '<a href="http://' + middle + '" rel="nofollow">' + trimmed + '</a>'; }else if(startsHttp || startsHttps){ return '<a href="' + middle + '" rel="nofollow">' + trimmed + '</a>'; }else if(hasAt && !startsWww && !hasColon && dojox.dtl.filter.strings._urlize2.test(middle)){ return '<a href="mailto:' + middle + '">' + middle + '</a>'; } return word; }).join("");
parameter | type | description |
---|---|---|
value | ||
arg |