1. 程式人生 > >請實現一個js指令碼,要求做到將數字轉化為千分位表示如:10000 轉化為10,000

請實現一個js指令碼,要求做到將數字轉化為千分位表示如:10000 轉化為10,000

請實現一個js指令碼,要求做到將數字轉化為千分位表示

如:
10000  ---->   10,000

10000121213   ---->   10,000,121,213

今天無意中看到這道題目,想了4種解決方案,和大家分享一下:

//法一
function parseNum(num){
	var list = new String(num).split('').reverse();
	for(var i = 0; i < list.length; i++){
		if(i % 4 == 3){
			list.splice(i, 0, ',');
		}
	}
	return list.reverse().join('');
}

console.log(parseNum(10000121213));


//法二
function parseNum(num){
	var reg=/(?=(?!\b)(\d{3})+$)/g;
	return String(num).replace(reg, ',');
}
console.log(parseNum(10000121213));


//法三
String.prototype.strReverse = function(){
	return this.split('').reverse().join('');
}

function parseNum(num){
	var str_num = String(num);
	var len = str_num.length;
	var tail = str_num.slice(0, len % 3);
	tail = tail.strReverse();
	var reg=/\d{3}/g;
	var list = str_num.strReverse().match(reg);
	list.push(tail);
	var res = list.join(',').strReverse();
	return res;
}
console.log(parseNum(10000121213));


//法四
function parseNum(num){
	var list = String(num).split('').reverse();
	var temp = [];
	for(var i = 0, len = list.length; i < len; i = i + 3){
		temp.push(list.slice(i, i + 3).join(''));
	}
	return temp.join(',').split('').reverse().join('');
}
console.log(parseNum(10000121213));



相關推薦

實現一個js指令碼要求做到數字轉化表示10000 化為10,000

請實現一個js指令碼,要求做到將數字轉化為千分位表示 如: 10000  ---->   10,00010000121213   ---->   10,000,121,213 今天無意中看到這道題目,想了4種解決方案,和大家分享一下: //法一 functio

數字轉換成改成數字

將數字轉換成千分位 function cc(s) {//千分位顯示 if(isNaN(s)){//js自己的方法檢驗數字 //alert(s+"2"); document.getElementById("wrongText1").innerHTM

實現一個函數一個字符串中的空格替換成“%20”。例如當字符串We Are Happy.則經過替換之後的字符串We%20Are%20Happy。

gpo 字符串 wchar tostring OS src clas string image replace兩種用法:replace(int start,int end, String str) repla

實現一個裝飾器限制該函數被調用的頻率10秒一次

空間 打包 函數作為參數 get false val orm cti res 一、通過函數的閉包/命名空間原理,裝飾器來實現這個功能 裝飾器及原理可參考我的這篇文章 這個裝飾器可以隨便設置時間很方便,每個函數都有獨立的標記時間 #!/usr/bin/env python #

實現一個函數一個字符串中的每個空格替換成“%20”。例如當字符串We Are Happy.則經過替換之後的字符串We%20Are%20Happy

i++ java ret char != pen 檢測 length number 方法一: public String replaceSpace(StringBuffer str) { if(str==null){ return n

用shell實現一個指令碼用來同來統計自己某個檔案下的程式碼總的程式碼行數總的註釋量總的空行量?支援遍歷查詢支援軟連結查詢

[[email protected] yunwei]# cat sum_code_row_version1.4.sh #!/bin/bash # File Name: sum_code_row.sh # Author: Liwqiang # mail: [email

設計實現一個簡易通訊錄要求使用結構體

實現一個通訊錄;通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括:姓名、性別、年齡、電話、住址提供方法:1.新增聯絡人資訊2.刪除指定聯絡人資訊3.查詢指定聯絡人資訊4.修改指定聯絡人資訊5.顯示所有聯絡人資訊6.清空所有聯絡人7.以名字排序所有聯絡人由於一般儲存都使用

實現一個棧Stack要求實現Push(出棧)、Pop(入棧)、 Min(返回最小值的操作)的時間複雜度O(1)

利用兩個棧 1. 一個用來儲存最小的元素 smin 2. 一個用來儲存所有元素 scur 3. 入棧時,scur直接壓入,smin棧頂與目標元素比較,若小之則壓入,否則不做處理 4. 出棧時,s

實現一個棧Stack要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度O(1)

這裡的要求呢,跟我們平時的stack操作是一樣的,那什麼地方不同呢?多了一個min方法,並且要求時間複雜度為O(1),那該怎麼做呢?O(1)的意思就是說,要用了,直接就能拿到,就好比陣列直到下標一樣,直接取。 那麼如果能夠將一個棧的棧頂一直存放的都是最小值呢?

【棧佇列】實現一個棧Stack要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度O(1)

問題分析 要記錄從當前棧頂到棧底元素的最小值,很容易想到用一個變數,每push一個元素更新一次變數的值。那麼問題來了,當執行pop操作時,上一次的最小值就找不到了。 解決方法 方法1、 使用一個棧。元素x入棧時,執行一次push(x),再push(min

編寫一個程式開啟3個執行緒這3個執行緒的ID分別A、B、C每個執行緒自己的ID在螢幕上列印10要求輸出結果必須按ABC的順序顯示;ABCABC

package test1; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.R

js 數字格式化(保留幾小數四捨五入)

function formatNumber(num,cent,isThousand) { num = num.toString().replace(/\$|\,/g,'');

excel中使用vba寫一個駝峰工具用來資料表中的欄程式碼中的欄

寫之前在網上沒有找到自己想要的效果,就想著自己寫一下,感覺還挺簡單 因為以前從來沒有接觸過vba,所以查了一些資料。想把過程記錄一下 下面就是最終想要的效果圖 把程式碼也貼下吧 Sub tuoFeng()     Dim preValue, finValue As Str

js賦值給angularjs ng-model 資料的格式

<div ng-controller="myController"> <input type="text" onblur="thousands(this)" onfocus="focusSelect(this)" ng-model="myValue"> </

數字轉化中文 可以當一個工具類用

private static String toChinese(String string) { String[] s1 = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; String

QLineEdit數字轉化字串對單個字元的修改

第一次寫部落格,記錄生活點滴;  實現qlineedit,獲取文字中的特定字元,進行操作; 游標的移動;獲取返回的字元; 替換原有字元; 由於比較簡單,直接上程式碼:#include "widget.h" #include "ui_widget.h" #include &

js數字轉化帶有千分號的字串

<script type="text/javascript">window.onload=function(){var str="123333333333";var len = str.length;var step=3;      var splitor=",

實現一個函式按照之字形列印二叉樹即第一行按照從左到右的順序列印第二層按照從右至左的順序列印第三行按照從左到右的順序列印其他行以此類推。

 boolean flag1 = true ;                   //利用標誌位來控制順序,為true,則從左到右的順序,為false則相反      

實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。

題目描述 請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 /* 思路:需要滿足一下規則(正則表