diff --git a/Assignment 2/index.html b/Assignment 2/index.html new file mode 100644 index 0000000000000000000000000000000000000000..4126c64007ec6068ed061c9791fef8a3bceb3040 --- /dev/null +++ b/Assignment 2/index.html @@ -0,0 +1,111 @@ +<!DOCTYPE html> +<html> +<head> + <title>How to convert number to words in Angularjs?</title> + <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.js"></script> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> +</head> +<body ng-app="MyApp"> + +<div ng-controller="myFormController"> + <form name="myForm"> + Nominal Share Capital : <input type="text" ng-pattern="/^[0-9]*$/" ng-minlength=4 ng-model="nominalshare" name="nominalshare"> + <span style="color:red" ng-show="myForm.nominalshare.$error.pattern">Only Numbers are allowed</span> + <span style="color:red" ng-show="myForm.nominalshare.$error.minlength">Value is too short</span> + <br> + Nominal Share in Words : <input ng-value="nominalshare | words" ng-disabled="!nominalshare"> + <br> + Nominal Share Price : <input type="text" ng-pattern="/^[0-9]*$/" ng-disabled="!nominalshare" ng-model="price" name="price"> + <span style="color:red" ng-show="myForm.price.$error.pattern">Only Numbers are allowed</span> + <br> + Division : <input name="division" ng-pattern="/^[0-9]*$/" ng-disabled="!price" ng-value="(nominalshare)/(price)"> + <span style="color:red" ng-show="myForm.division.$error.pattern">Please type a divisible number in Nominal Share Price</span> + <br> + <input type="submit" ng-model="submit" ng-value="Submit" ng-disabled="!nominalshare"> + <br> + </form> +</div> + +<script type="text/javascript"> + + var MyApp = angular.module('MyApp',[]); +MyApp.controller('myFormController',['$scope',function($scope){ + $scope.nominalshare=''; + $scope.division=''; +}]); + + MyApp.filter('words', function() { + function isInteger(query) { + return query % 1 === 0; + } + + + return function(value) { + if (value && isInteger(value)) + return covertWords(value); + + return value; + }; + + }); + + var myappthos = ['','thousand','million', 'billion','trillion']; + var myappdang = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; + var myapptenth = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; + var myapptvew = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; + + function covertWords(s) + { + s = s.toString(); + s = s.replace(/[\, ]/g,''); + // if (parseFloat(s) === NaN) return 'not a number'; + var query = s.indexOf('.'); + // if (parseInt(query) === NaN) return 'not a number'; + if (query == -1) query = s.length; + //if (query < 4) return 'too small'; + var n = s.split(''); + var str = ''; + var mjk = 0; + for (var ld=0; ld < query; ld++) + { + if ((query-ld)%3==2) + { + if (n[ld] == '1') + { + str += myapptenth[Number(n[ld+1])] + ' '; + ld++; + mjk=1; + } + else if (n[ld]!=0) + { + str += myapptvew[n[ld]-2] + ' '; + mjk=1; + } + } + else if (n[ld]!=0) + { + str += myappdang[n[ld]] +' '; + if ((query-ld)%3==0) str += 'hundred '; + mjk=1; + } + + if ((query-ld)%3==1) + { + if (mjk) str += myappthos[(query-ld-1)/3] + ' '; + mjk=0; + } + } + if (query != s.length) + { + var dv = s.length; + str += 'point '; + for (var ld=query+1; ld<dv; ld++) str += myappdang[n[ld]] +' '; + } + return str.replace(/\s+/g,' '); + } + + window.covertWords = covertWords; +</script> + +</body> +</html>