AngularJS filter Example
by vishwackh89
HTML
<script src="http://code.angularjs.org/1.0.0rc4/angular-1.0.0rc4.min.js"></script>
<div ng:app="myApp">
<div ng-controller="HelloCntl">
<ul>
<li ng-repeat="friend in friends">
<span>{{friend.name}}| </span>
<span>{{friend.phone | weDontLike}}</span>
<br/><br/>
</li>
</ul>
</div>
</div>
CSS
span
{
width: 200px;
}
JavaScript
angular.module('myApp',[]).filter('weDontLike', function(){
return function(phonenumber){
if (!phonenumber) {
return '';
}
var originalNo = phonenumber;
phonenumber = phonenumber.toString().trim().replace(/[^a-zA-Z0-9 ]/g, '');
var number = (phonenumber.length > 10) ? phonenumber.substr(phonenumber.length - phonenumber.length) : phonenumber;
if (!isNaN(number)) {
if (number.length > 10) {
if (originalNo[0] === '+') {
return originalNo;
} else {
return "+1-" + number;
}
} else if (number.length === 10) {
return "+1-" + number.substring(0);
} else {
if (originalNo[0] === '+') {
return originalNo;
} else {
return "+1-" + number;
}
}
} else {
return number;
}
};
});
function HelloCntl($scope) {
$scope.friends = [
{
name: '=10 with (+)',
phone: '+1-3150000006'},
{
name: '=10 with out (+)',
phone: '3150000005'},
{
name: '<10 with (+)',
phone: '+1-7000000'
},
{
name: '<10 with out (+)',
phone: '600000'},
{
name: '>10 with (+)',
phone: '+1-8150000008888'},
{
name: '>10 with out (+)',
phone: '91500000069999'},
{
name: 'String',
phone: 'adsadasdasd'} ,
{
name: 'null',
phone: ''}
];
}