自己实现string的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方法 人民币小写转大写,数字反转,正则优化 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • canvas实现图片根据滑块放大缩小效果

    来详细讲解如何使用canvas实现图片根据滑块放大缩小效果。步骤如下: 步骤一:创建canvas元素 首先,我们需要在网页中创建一个canvas元素。可以使用以下代码: <canvas id="canvas"></canvas> 步骤二:获取Canvas 2D上下文 我们需要获取到Canvas 2D上下文,以便在c…

    css 2023年6月10日
    00
  • jQuery操作CSS样式

    jQuery操作CSS样式攻略 在jQuery中,可以使用以下方法操作CSS样式: 1. .css()方法 .css()方法用于获取或设置一个或多个元素的CSS样式。可以传入一个或两个参数。 第一个参数是一个CSS属性的名称,如果想一次设置多个属性,可以传入一个有多个属性和值的JSON对象。第二个参数是一个可选的布尔值,表示是否使用动画过渡效果。 下面是示例…

    css 2023年6月10日
    00
  • html+css实现登录界面附效果图

    实现一个登录界面需要使用HTML和CSS来布局和美化,下面我们来详细的讲解一下具体操作步骤。 步骤一:准备HTML代码 首先,我们需要编写HTML代码来构建登录界面。我们可以先写出基础的HTML骨架,比如下面这段代码: <!DOCTYPE html> <html lang="en"> <head> &l…

    css 2023年6月9日
    00
  • 简单的CSS叠加外边距示例

    我们来详细讲解一下“简单的CSS叠加外边距示例”的完整攻略。 什么是CSS外边距叠加 在CSS中,相邻的两个元素之间如果存在margin值时,它们之间的margin会发生叠加(也叫“合并”),即margin值会取两者中较大的一个,而不是简单的将两者相加。 外边距叠加规则 CSS中,“相邻的元素”指的是两个元素之间没有任何非空内容、padding或border…

    css 2023年6月9日
    00
  • javascript五图轮播切换实用版

    首先,本文将介绍如何使用JavaScript实现一个基础的轮播切换功能。本文所使用的代码可以在此Github仓库中查看。 第一步:HTML结构 首先,在HTML中,我们需要一个容器元素,和需要轮播展示的图片元素。以下是一份示例代码: <div class="carousel-container"> <img src=&q…

    css 2023年6月10日
    00
  • DIV+CSS布局教程大全与pdf电子书 下载

    标题:DIV+CSS布局教程大全与pdf电子书 下载 简介 DIV+CSS布局是前端开发中最常用的布局方式之一,相比传统的表格布局和框架布局,DIV+CSS布局更加灵活、轻便、易于维护和扩展。为了更好地掌握和应用DIV+CSS布局,本文将提供一份DIV+CSS布局教程大全,以及一个PDF电子书下载链接。 DIV+CSS布局教程大全 1. DIV+CSS布局基…

    css 2023年6月9日
    00
  • CSS 浏览器的等宽空格问题解决

    下面是关于“CSS 浏览器的等宽空格问题解决”的完整攻略。 问题描述 在网页中使用等宽字体时,不同浏览器对于空格的宽度并不一致,这会导致网页排版出现问题,比如说表格对不齐等。因此,我们需要使用 CSS 来解决浏览器的等宽空格问题。 解决方案 方法一:使用 Unicode 等宽空格 Unicode 中有一种特殊字符叫做“全角空格”,其宽度与字符宽度相同,可以用…

    css 2023年6月10日
    00
  • CSS中的伪元素简介

    CSS中的伪元素是指使用:before和 :after这两个CSS伪元素属性所创建的元素。这些元素不需要在HTML结构中就可以被CSS样式所调用,因此成为了CSS样式设计中的重要元素。 :before 伪元素的使用 :before伪元素的正式名称是“假像素”,其可以让开发者在目标元素之前插入文本和内容,使得目标元素的呈现看起来更加清晰美观。 .content…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部