function changeMoneyToChinese(money) {
var cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]; // 汉字的数字
var cnIntRadice = ["", "拾", "佰", "仟"]; // 基本单位
var cnIntUnits = ["", "万", "亿", "兆"]; // 对应整数部分扩展单位
var cnDecUnits = ["角", "分", "毫", "厘"]; // 对应小数部分单位
// var cnInteger = "整"; //整数金额时后面跟的字符
var cnIntLast = "元"; // 整型完以后的单位
var maxNum = 999999999999999.9999; // 最大处理的数字
var IntegerNum; // 金额整数部分
var DecimalNum; // 金额小数部分
var ChineseStr = ""; // 输出的中文金额字符串
var parts; // 分离金额后用的数组,预定义
if (money === "") {
return "";
}
money = parseFloat(money);
if (money >= maxNum) {
alert("超出最大处理数字");
return "";
}
if (money === 0) {
// ChineseStr = cnNums[0]+cnIntLast+cnInteger;
ChineseStr = cnNums[0] + cnIntLast;
// document.getElementById("show").value=ChineseStr;
return ChineseStr;
}
money = money.toString(); // 转换为字符串
if (money.indexOf(".") === -1) {
IntegerNum = money;
DecimalNum = "";
} else {
parts = money.split(".");
IntegerNum = parts[0];
DecimalNum = parts[1].substr(0, 4);
}
if (parseInt(IntegerNum, 10) > 0) {
// 获取整型部分转换
let zeroCount = 0;
const IntLen = IntegerNum.length;
for (let i = 0; i < IntLen; i++) {
const n = IntegerNum.substr(i, 1);
const p = IntLen - i - 1;
const q = p / 4;
const m = p % 4;
if (n === "0") {
zeroCount++;
} else {
if (zeroCount > 0) {
ChineseStr += cnNums[0];
}
zeroCount = 0; // 归零
ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
if (m === 0 && zeroCount < 4) {
ChineseStr += cnIntUnits[q];
}
}
ChineseStr += cnIntLast;
// 整型部分处理完毕
}
if (DecimalNum !== "") {
// 小数部分
const decLen = DecimalNum.length;
for (let i = 0; i < decLen; i++) {
const n = DecimalNum.substr(i, 1);
if (n !== "0") {
ChineseStr += cnNums[Number(n)] + cnDecUnits[i];
}
}
}
if (ChineseStr === "") {
// ChineseStr += cnNums[0]+cnIntLast+cnInteger;
ChineseStr += cnNums[0] + cnIntLast;
} /* else if( DecimalNum == '' ){
ChineseStr += cnInteger;
ChineseStr += cnInteger;
} */
return ChineseStr;
}
/**
* 手机号码
* @param {Object} val
*/
var isPhone = function(val) {
const reg = /^1[0-9]{10}$/
return reg.test(val)
}
/**
* 邮箱
* @param {Object} val
*/
var isEmail = function(val) {
const reg = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
return reg.test(val)
}
/**
* 身份证
* @param {Object} val
*/
var isIdCard = function(val) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
return reg.test(val)
}
/**
* 邮政编码
* @param {Object} val
*/
var isPostalCode = function(val) {
const reg = /^[1-9][0-9]{5}$/
return reg.test(val)
}
/* 合法uri*/
export function validateURL(textval) {
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return urlregex.test(textval)
}
/* 小写字母*/
export function validateLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/* 大小写字母*/
export function validateAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/**
* validate email
* @param email
* @returns {boolean}
*/
export function validateEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return re.test(email)
}
/**
* 數字校驗
* @param {Object} val
*/
export function isNumber(number) {
const reg = /^(([0-9]{0,15})\.([0-9]{1,10})$)|^([0-9]{0,15})$/
return reg.test(number)
}
2、Number()和parseInt()
Number()和parseInt()一样,都可以用来进行数字的转换
区别在于,当转换的 内容包含非数字 的时候,Number() 会返回NaN(Not a Number)
parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN
Number(): 可以用于任何数据类型转换成数值;
parseInt()、parseFloat(): 专门用于把字符串转换成数值;
1、判断传入值为数值
if(!this.data.rechargeBalance) {
that.messecg('warning', '请输入充值金额')
return false
} else if (this.data.rechargeBalance < 0 || this.data.rechargeBalance == 0 || isNaN(Number(this.data.rechargeBalance))) {
that.messecg('warning', '请输入大于0的数')
return false
}