自己实现string的substring方法 人民币小写转大写,数字反转,正则优化

以下是一个示例代码,用于实现自己的substring方法:

自己实现string的substring方法:
在JavaScript中,可以使用slice方法来截取字符串的一部分。如果要自己实现substring方法,可以按照以下步骤进行:

  1. 获取需要截取的字符串的起始位置和结束位置。
  2. 判断起始位置和结束位置是否合法,如果不合法则进行调整。
  3. 将起始位置和结束位置之间的字符拼接在一起。
  4. 返回拼接后的字符串。

以下是一个示例代码,用于实现自己的substring方法:

String.prototype.mySubstring = function(start, end) {
  if (start > end) {
    let temp = start;
    start = end;
    end = temp;
  }
  if (start < 0) {
    start = 0;
  }
  if (end > this.length) {
    end = this.length;
  }
  let result = '';
  for (let i = start; i < end; i++) {
    result += this[i];
  }
  return result;
};

上述代码中,我们定义了一个名为mySubstring的方法,它以起始位置和结束位置作为参数,并返回一个新的字符串,该字符串是从原始字符串中开始位置和结束位置之间的字符截取而来。

人民币小写转大写:
在中国纸币面额不断增大的情况下,手动将人民币小写转为大写变得越来越困难。这里我们可以使用JavaScript实现自动将人民币小写转化为大写。

以下是一个示例代码,用于实现人民币小写转大写:

function convertCurrency(money) {
  // 定义汉字的相关文本
  let cnNums = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
  let cnIntRadice = ['', '拾', '佰', '仟'];
  let cnIntUnits = ['', '万', '亿', '兆'];
  let cnDecUnits = ['角', '分', '毫', '厘'];
  let cnInteger = "整";
  let cnIntLast = "元";

  if (money == "") { return ""; }
  if (isNaN(money)) { return "不是数字!"; }

  let sign = (money >= 0) ? "" : "-";
  money = Math.abs(money);

  let intNum = parseInt(money.toString());
  let decNum = money - intNum;
  let intLen = intNum.toString().length;
  let decLen = decNum.toString().length;

  let result = "";
  if (intLen > 12) { return "超出计算范围!"; }

  // 转换整数部分
  for (let i = 0; i < cnIntUnits.length && intNum > 0; i++) {
    let unit = cnIntUnits[i];
    let p = "";
    for (let j = 0; j < cnIntRadice.length && intNum > 0; j++) {
      let radice = cnIntRadice[j];
      let intDigit = intNum % 10;
      intNum = Math.floor(intNum / 10);
      p = cnNums[intDigit] + radice + p;
    }
    result = p + unit + result;
  }

  // 转换小数部分
  if (decLen > 0) {
    for (let i = 0; i < cnDecUnits.length && decNum > 0; i++) {
      let unit = cnDecUnits[i];
      let decDigit = parseInt(decNum * 10);
      decNum = decNum * 10 - decDigit;
      result += cnNums[decDigit] + unit;
    }
  }

  // 拼接结果
  if (result == "") { result = cnNums[0] + cnIntLast + cnInteger; }
  else if (decLen == 0) { result += cnIntLast + cnInteger; }
  else if (intLen > 0) { result += cnIntLast; }

  return sign + result;
};

以上代码中,我们定义了一个方法convertCurrency,它以一个小写形式的金额为参数,并返回一个大写形式的金额。

数字反转:
数字翻转指的是将一个数字反向输出,例如将12345反转为54321。使用JavaScript可以方便地实现该功能。

以下是一个示例代码,用于实现数字的反转:

function reverseNumber(num) {
  let reverseNum = 0;
  while (num > 0) {
    reverseNum = reverseNum * 10 + num % 10;
    num = Math.floor(num / 10);
  }
  return reverseNum;
}

正则优化:
在JavaScript中,正则表达式可以方便地用于字符串匹配和替换。正则表达式常用于对字符串进行复杂的操作和检索。

以下是一个示例代码,用于优化正则表达式:

let phoneReg = /^1[3456789]\d{9}$/;
let emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

// 检查手机号码
function checkPhone(phone) {
  return phoneReg.test(phone);
}

// 检查电子邮件地址
function checkEmail(email) {
  return emailReg.test(email);
}

以上代码中,我们定义了两个正则表达式,分别用于检测手机号码和电子邮件地址。这些正则表达式使用了基本的匹配规则和量词,以便可以准确地匹配正确的数据。

本文标题为:自己实现string的substring方法 人民币小写转大写,数字反转,正则优化

基础教程推荐