1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- angular.module('truncate', [])
- .filter('characters', function () {
- return function (input, chars, breakOnWord) {
- if (isNaN(chars)) return input;
- if (chars <= 0) return '';
- if (input && input.length > chars) {
- input = input.substring(0, chars);
- if (!breakOnWord) {
- var lastspace = input.lastIndexOf(' ');
- //get last space
- if (lastspace !== -1) {
- input = input.substr(0, lastspace);
- }
- }else{
- while(input.charAt(input.length-1) === ' '){
- input = input.substr(0, input.length -1);
- }
- }
- return input + '…';
- }
- return input;
- };
- })
- .filter('splitcharacters', function() {
- return function (input, chars) {
- if (isNaN(chars)) return input;
- if (chars <= 0) return '';
- if (input && input.length > chars) {
- var prefix = input.substring(0, chars/2);
- var postfix = input.substring(input.length-chars/2, input.length);
- return prefix + '...' + postfix;
- }
- return input;
- };
- })
- .filter('words', function () {
- return function (input, words) {
- if (isNaN(words)) return input;
- if (words <= 0) return '';
- if (input) {
- var inputWords = input.split(/\s+/);
- if (inputWords.length > words) {
- input = inputWords.slice(0, words).join(' ') + '…';
- }
- }
- return input;
- };
- });
|