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

yizhihongxing

自己实现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日

相关文章

  • HTML标记语言——引用

    请看下面的攻略。 什么是HTML引用标签 HTML的引用标签用于包含一个引用或者称之为一个摘录,因此它也被称为摘录标签。可以使用 <q> 标签为短引用括起来,也就是说,文本中的一个小片段需要被引用的时候,可以使用这个标签。而如果需要引用的内容比较长,那么就需要使用 <blockquote> 标签包裹。这样就可以在内容前后添加引号和缩进…

    css 2023年6月9日
    00
  • CSS的一些圆角图形实例分享

    那我详细讲解一下“CSS的一些圆角图形实例分享”的完整攻略。 讲解CSS圆角图形的攻略 圆形 如果想要创建一个圆形,可以使用border-radius属性并将其设置为50%。示例代码如下: .circle { width: 100px; height: 100px; border-radius: 50%; background-color: red; } 正…

    css 2023年6月10日
    00
  • JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)

    好嘞,下面就来详细讲解一下“JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)”的完整攻略。 首先,我们先分析一下需要实现的效果。该效果要求实现的是一个可以上下左右无缝滚动的图像效果,并且设置定高、定宽以及停顿等效果,最重要的是要兼容ie和ff两种浏览器。 为了达到这个效果,我们可以采用一些主要的方法和技巧: 1. CSS属性设置 首…

    css 2023年6月10日
    00
  • Apache网页的优化、安全与防盗链图文详解

    Apache网页的优化、安全与防盗链图文详解 一、优化 1.启用gzip压缩 启用gzip压缩可以大大减小网页传输的大小,提高网页加载速度。在Apache中可以通过修改.htaccess文件实现: <IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fo…

    css 2023年6月9日
    00
  • 使用 css3 实现圆形进度条的示例

    下面是使用css3实现圆形进度条的完整攻略: 准备工作 在开始制作圆形进度条之前,需要准备一些基本的HTML和CSS文件。在HTML中创建一个空的div元素,并为其指定一个class名,例如”progress-bar”。接着,在CSS中对这个div元素进行一些基本的样式定义,例如设置它的宽度、高度和边框等。 Example 1 我们先来看一下制作圆形进度条的…

    css 2023年6月10日
    00
  • JavaScript之Canvas_动力节点Java学院整理

    JavaScript之Canvas_动力节点Java学院整理 本文主要介绍如何使用Canvas创建具有动态效果的图形和动画。 Canvas介绍 Canvas是HTML5中新增的HTML元素之一,类似于画布,可以在画布上绘制各种图形、动画等。它是基于JavaScript的API实现的,可以使用js代码来操作Canvas。Canvas使用起来相对简单但也有一些坑…

    css 2023年6月10日
    00
  • JS实现逐页将PDF文件转为图片格式

    下面我将详细讲解如何使用JavaScript实现逐页将PDF文件转为图片格式的完整攻略。该攻略分为以下几个步骤: 安装依赖 读取PDF文件 将每一页PDF文件转为图片格式 将转换后的图片格式保存到服务器中 接下来我将详细解释每一步骤。 1. 安装依赖 要使用JavaScript将PDF文件转为图片格式,需要安装一个名为pdf2img的Node.js库。使用下…

    css 2023年6月10日
    00
  • 利用纯CSS3实现tab选项卡切换示例代码

    接下来我将为您详细讲解如何利用纯CSS3实现tab选项卡切换,以下是完整攻略: 1. HTML结构 首先我们需要搭建好选项卡的HTML结构,一般来说包括选项卡头和选项卡内容两部分。其中,选项卡头通常由一个ul元素和多个li元素组成,而选项卡内容则由多个div元素组成,每个div元素代表一个选项卡的内容。 我们可以像下面这样搭建HTML结构: <div …

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