JS文本框輸入數(shù)字立即轉換為大寫人民幣金額顯示
來源:易賢網(wǎng) 閱讀:4651 次 日期:2015-03-18 11:49:05
溫馨提示:易賢網(wǎng)小編為您整理了“JS文本框輸入數(shù)字立即轉換為大寫人民幣金額顯示”,方便廣大網(wǎng)友查閱!

JS文本框輸入數(shù)字立即轉換為大寫人民幣金額顯示,具體代碼如下:

/////////////////////////////////////////////////////////////////////

//界面

/////////////////////////////////////////////////////////////////////

<div align="center">

<span>輸入數(shù)字:<asp:TextBox ID="Digits" name="Digits" runat="server" onkeyup="convertCurrency(this.value);"></asp:TextBox></span>

<span>大寫金額:<asp:TextBox ID="getCapital" name="getCapital" runat="server" Width="400"></asp:TextBox></span>

</div>

//////////////////////////////////////////////////////////////////////

//BLL.JS 中數(shù)字字符轉換成大寫人民幣通用方法封裝

//////////////////////////////////////////////////////////////////////

function convertCurrency(currencyDigits) {

var MAXIMUM_NUMBER = 99999999999.99; //最大值

// 定義轉移字符

var CN_ZERO = "零";

var CN_ONE = "壹";

var CN_TWO = "貳";

var CN_THREE = "叁";

var CN_FOUR = "肆";

var CN_FIVE = "伍";

var CN_SIX = "陸";

var CN_SEVEN = "柒";

var CN_EIGHT = "捌";

var CN_NINE = "玖";

var CN_TEN = "拾";

var CN_HUNDRED = "佰";

var CN_THOUSAND = "仟";

var CN_TEN_THOUSAND = "萬";

var CN_HUNDRED_MILLION = "億";

var CN_DOLLAR = "元";

var CN_TEN_CENT = "角";

var CN_CENT = "分";

var CN_INTEGER = "整";

// 初始化驗證:

var integral, decimal, outputCharacters, parts;

var digits, radices, bigRadices, decimals;

var zeroCount;

var i, p, d;

var quotient, modulus;

// 驗證輸入字符串是否合法

if (currencyDigits.toString() == "") {

alert("還沒有輸入數(shù)字");

$("#Digits").focus();

return;

}

if (!currencyDigits.match(/[^,.\d]/)) {

alert("請輸入有效數(shù)字");

$("#Digits").focus();

return;

}

//判斷是否輸入有效的數(shù)字格式

var reg = /^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/;

if (!reg.test(currencyDigits)) {

alert("請輸入有效格式數(shù)字");

$("#Digits").focus();

return;

}

currencyDigits = currencyDigits.replace(/,/g, "");

currencyDigits = currencyDigits.replace(/^0+/, "");

//判斷輸入的數(shù)字是否大于定義的數(shù)值

if (Number(currencyDigits) > MAXIMUM_NUMBER) {

alert("您輸入的數(shù)字太大了");

$("#Digits").focus();

return;

}

parts = currencyDigits.split(".");

if (parts.length > 1) {

integral = parts[0];

decimal = parts[1];

decimal = decimal.substr(0, 2);

}

else {

integral = parts[0];

decimal = "";

}

// 實例化字符大寫人民幣漢字對應的數(shù)字

digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);

radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);

bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);

decimals = new Array(CN_TEN_CENT, CN_CENT);

outputCharacters = "";

//大于零處理邏輯

if (Number(integral) > 0) {

zeroCount = 0;

for (i = 0; i < integral.length; i++) {

p = integral.length - i - 1;

d = integral.substr(i, 1);

quotient = p / 4;

modulus = p % 4;

if (d == "0") {

zeroCount++;

}

else {

if (zeroCount > 0) {

outputCharacters += digits[0];

}

zeroCount = 0;

outputCharacters += digits[Number(d)] + radices[modulus];

}

if (modulus == 0 && zeroCount < 4) {

outputCharacters += bigRadices[quotient];

}

}

outputCharacters += CN_DOLLAR;

}

// 包含小數(shù)部分處理邏輯

if (decimal != "") {

for (i = 0; i < decimal.length; i++) {

d = decimal.substr(i, 1);

if (d != "0") {

outputCharacters += digits[Number(d)] + decimals[i];

}

}

}

//確認并返回最終的輸出字符串

if (outputCharacters == "") {

outputCharacters = CN_ZERO + CN_DOLLAR;

}

if (decimal == "") {

outputCharacters += CN_INTEGER;

}

//獲取人民幣大寫

$("#getCapital").val(outputCharacters);

}

更多信息請查看IT技術專欄

更多信息請查看腳本欄目

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)