js 实战检验

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
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值