當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS-为金额添加千分位逗号分割符
生活随笔
收集整理的這篇文章主要介紹了
JS-为金额添加千分位逗号分割符
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言:這個功能在前端頁面中使用的還是比較多的,正好我們的項(xiàng)目中也有使用此功能,不過YY同學(xué)寫的代碼不像個方法的樣子,一個入口中間又插了幾道子,所 ? ? ? ? ? ? 以,我寫了下面這個方法,經(jīng)過測試,適用性還是蠻好的,留在這里以備后用!
?
<!DOCTYPE html> <html> <head><meta charset="utf-8"/><title>Format Currency</title><style>input{width:360px;}</style><script>/*獲取第一個輸入框中數(shù)據(jù),格式化后放入第二個輸入框進(jìn)行展示*/function showNewNum() {//獲取輸入的數(shù)據(jù)var value = document.getElementById('num').value;//將格式化的數(shù)據(jù)放入到新的輸入框中顯示 document.getElementById('newNum').value = formatCurrency(value);}/*格式化數(shù)據(jù),小數(shù)部分不做處理,對整數(shù)部分進(jìn)行千分位格式化的處理,如果有符號,正常保留*/function formatCurrency(num) {if(num){//將num中的$,去掉,將num變成一個純粹的數(shù)據(jù)格式字符串 num = num.toString().replace(/\$|\,/g,'');//如果num不是數(shù)字,則將num置0,并返回if(''==num || isNaN(num)){return 'Not a Number ! ';}//如果num是負(fù)數(shù),則獲取她的符號var sign = num.indexOf("-")> 0 ? '-' : '';//如果存在小數(shù)點(diǎn),則獲取數(shù)字的小數(shù)部分var cents = num.indexOf(".")> 0 ? num.substr(num.indexOf(".")) : '';cents = cents.length>1 ? cents : '' ;//注意:這里如果是使用change方法不斷的調(diào)用,小數(shù)是輸入不了的//獲取數(shù)字的整數(shù)數(shù)部分 num = num.indexOf(".")>0 ? num.substring(0,(num.indexOf("."))) : num ;//如果沒有小數(shù)點(diǎn),整數(shù)部分不能以0開頭if('' == cents){ if(num.length>1 && '0' == num.substr(0,1)){return 'Not a Number ! ';}}//如果有小數(shù)點(diǎn),且整數(shù)的部分的長度大于1,則整數(shù)部分不能以0開頭else{if(num.length>1 && '0' == num.substr(0,1)){return 'Not a Number ! ';}}//針對整數(shù)部分進(jìn)行格式化處理,這是此方法的核心,也是稍難理解的一個地方,逆向的來思考或者采用簡單的事例來實(shí)現(xiàn)就容易多了/*也可以這樣想象,現(xiàn)在有一串?dāng)?shù)字字符串在你面前,如果讓你給他家千分位的逗號的話,你是怎么來思考和操作的?字符串長度為0/1/2/3時都不用添加字符串長度大于3的時候,從右往左數(shù),有三位字符就加一個逗號,然后繼續(xù)往前數(shù),直到不到往前數(shù)少于三位字符為止*/for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));}//將數(shù)據(jù)(符號、整數(shù)部分、小數(shù)部分)整體組合返回return (sign + num + cents); }}</script> </head> <body bgcolor="AliceBlue" align="center"><input id="num" class=""/><br/><input id="newNum" class=""/><br/><input type="button" value="Please click ME" onclick="showNewNum();"/> </body> </html>?
轉(zhuǎn)載于:https://www.cnblogs.com/godtrue/p/5806914.html
總結(jié)
以上是生活随笔為你收集整理的JS-为金额添加千分位逗号分割符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进程间五种通信方式
- 下一篇: Spring基础学习笔记-Bean的基础