【JS 】實現(xiàn)數(shù)字格式化效果

介紹

最近公司改造老項目似扔,要將數(shù)字類型的顯示效果做統(tǒng)一處理搪花;
一個一個改顯然不現(xiàn)實,所以做了一個公共組件統(tǒng)一處理薯嗤;

對數(shù)字格式的要求主要有:小數(shù)保留位數(shù)顽爹、是否顯示千分符、小數(shù)位不足是否補零骆姐、小數(shù)截斷模式
另外還附加一個顯示效果 居中镜粤、居左、居右
還要分不同類型來控制玻褪,比如金額肉渴,數(shù)量使用不同格式;

主要功能類分為3個

  • NumberExtensions.js // 數(shù)字格式配置带射,數(shù)字剪切黄虱,格式化等核心功能
  • NumberExtensions.jQuery.js // 基于 jQuery 自動渲染 input 框
  • NumberExtensions.Vue.js // 基于 Vue2 自定義組件 number-input (還有一部分頁面是基于vue2做的)
    源碼:gitee

效果展示

目前功能已完成,效果如下:數(shù)字輸入框JQuery版 demo源碼預覽下載- JSRUN


使用方法

$(function(){
    /**
     * 設置小數(shù)樣式
     * @param {String|String[]} styleKeys 樣式名稱和別名庸诱。如:["price","p"]
     * @param {Object} config 配置捻浦。如: { decimals: 4, mode: "Round", thousands: true, zreofill: false, align: "left", units: {} };
     *   decimals: 小數(shù)保留位數(shù) 0~20
     *   mode: 小數(shù)截取方式 Round-四舍五入/Ceil-向上取整/Floor-向下取整
     *   thousands: 是否顯示千分位 true/false
     *   zreofill: 小數(shù)位不足是否補零 true/false
     *   align: 對齊方式 left/right/center
     *   units: 單位配置
     * @param {String} unit 單位
     */
    Number.setConfig("price", "p"], { decimals: 4, mode: "Round", thousands: false, zreofill: false, align: "right" });
})

// 根據(jù)配置截取小數(shù)位數(shù)
var price = 1.234567.scale("p"); 

// 根據(jù)配置格式化數(shù)字字符串
var priceStr = 1234567.8.format("p"); 

// 同時操作截取和格式化
var str = number.scaleformat("p");

// 靜態(tài)方法晤揣,可以在不確定變量類型的情況下編碼
var str = Number.scaleformat(number,"p") || "-" //當參數(shù)number無法轉(zhuǎn)為數(shù)字時,返回null
// Number.scale(number,"p")
// Number.format(number,"p")

// Number.parse 方法,方便轉(zhuǎn)換數(shù)字朱灿,排除正負無窮昧识,可正確處理千分符
var number = Number.parse('1,234,567.76') || 0;

基于 jQuery

<!-- number-style="price"  數(shù)字樣式 -->
<!-- number-unit="元"   樣式單位(可忽略) -->
<!-- number-strict  嚴格數(shù)字(丟失焦點時如果內(nèi)容為非數(shù)字,可恢復上次正確的數(shù)字) -->
<!-- number-max="100" 數(shù)字內(nèi)容最大不能大于該值 -->
<!-- number-min="0"   數(shù)字內(nèi)容最大不能小于該值 -->
<input number-style="price" number-unit="元" number-strict number-max="100" number-min="0" />

<script>
  $(function(){
    // 設置數(shù)字格式盗扒,可結(jié)合實際情況從API中獲取頁面設置效果
    Number.setConfig("price", "p"], { decimals: 4, mode: "Round", thousands: false, zreofill: false, align: "right" });
    // 渲染頁面
    Number.render();
  })
</script>

基于Vue

<div id="app">
  <!-- 屬性參考 jQuery 部分 -->
   <number-input number-style="price" number-strict number-min="100" number-max="9999.99" v-model="price" />
</div>

<script>
  // 設置數(shù)字格式跪楞,可結(jié)合實際情況從API中獲取頁面設置效果
  Number.setConfig("price", "p"], { decimals: 4, mode: "Round", thousands: false, zreofill: false, align: "right" });
  var app = new Vue({
      el: '#app',
      data: {
        price: 12345
    }
  });
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侣灶,隨后出現(xiàn)的幾起案子甸祭,更是在濱河造成了極大的恐慌,老刑警劉巖褥影,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件池户,死亡現(xiàn)場離奇詭異,居然都是意外死亡凡怎,警方通過查閱死者的電腦和手機校焦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來统倒,“玉大人寨典,你說我怎么就攤上這事》看遥” “怎么了耸成?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浴鸿。 經(jīng)常有香客問我井氢,道長,這世上最難降的妖魔是什么赚楚? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮骗卜,結(jié)果婚禮上宠页,老公的妹妹穿的比我還像新娘。我一直安慰自己寇仓,他們只是感情好举户,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遍烦,像睡著了一般俭嘁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上服猪,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天供填,我揣著相機與錄音拐云,去河邊找鬼。 笑死近她,一個胖子當著我的面吹牛叉瘩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粘捎,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼薇缅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了攒磨?” 一聲冷哼從身側(cè)響起泳桦,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娩缰,沒想到半個月后灸撰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年烹卒,在試婚紗的時候發(fā)現(xiàn)自己被綠了怕磨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡亲轨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸟顺,到底是詐尸還是另有隱情惦蚊,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布讯嫂,位于F島的核電站蹦锋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欧芽。R本人自食惡果不足惜莉掂,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望千扔。 院中可真熱鬧憎妙,春花似錦、人聲如沸曲楚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龙誊。三九已至抚垃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹤树。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工铣焊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人魂迄。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓粗截,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捣炬。 傳聞我的和親對象是個殘疾皇子熊昌,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容