javascript正则表达式和字符串RegExp and String(二)

JavaScript正则表达式和字符串RegExp and String(二)

1. RegExp 对象

RegExp 对象是 JavaScript 的内置对象,用于支持正则表达式。

1.1 RegExp 对象的创建

  • 字面量方式: var patt = /pattern/flags;
  • 构造函数方式: var patt = new RegExp(pattern, flags);

其中,pattern为正则表达式模式,flags为标志。常用的标志有:i - 忽略大小写;g - 全局匹配;m - 多行匹配。

1.2 运算符

  • test() 方法:返回值为布尔类型,用于检测一个字符串是否匹配某个正则表达式。示例:
var patt = /e/;
patt.test("hello");  // true
  • exec() 方法:返回值为数组,如果字符串与正则表达式匹配,则返回匹配的数组;否则返回 null。示例:
var patt = /a(b)c/;
var result = patt.exec("abcdefg");
console.log(result[0]); // abc
console.log(result[1]); // b

1.3 修饰符

正则表达式修饰符可以改变搜索模式。

常用的修饰符有:

  • i:表示不区分大小写。
  • g:表示查找所有匹配,而不仅仅查找第一个匹配。
  • m:表示多行查找模式。

2. String 对象

String 对象用于处理字符串。

2.1 字符串方法

  • search() 方法:用于检索字符串中指定的子字符串并返回子字符串的位置。示例:
var str = "Visit Javatpoint!";
var n = str.search(/javatpoint/i);
console.log(n); // 6
  • match() 方法:用于在字符串中寻找一个或多个与正则表达式匹配的字符串,并返回一个包含匹配结果的数组。示例:
var str = "The rain in SPAIN stays mainly in the plain"; 
var patt = /ain/g;
var arr = str.match(patt); 
console.log(arr); // ["ain", "ain", "ain"]
  • replace() 方法:用于替换字符串中指定的子字符串。示例:
var str = "Hello World!";
var patt = /world/i;
var newstr = str.replace(patt, "JavaScript");
console.log(newstr); // "Hello JavaScript!"

2.2 转义字符

在正则表达式中,有一些字符有特殊含义,需要使用转义字符来匹配这些字符。

常用的转义字符有:

  • \d:匹配数字。
  • \D:匹配非数字字符。
  • \w:匹配字母、数字和下划线。
  • \W:匹配除了字母、数字和下划线以外的字符。
  • \s:匹配空格、制表符和换行符。
  • \S:匹配除了空格、制表符和换行符以外的字符。

3. 示例说明

3.1 验证手机号码

function validatePhone(number) {
  var patt = /^1[3-9]\d{9}$/;
  return patt.test(number);
}
  • /^1[3-9]\d{9}$/:表示必须以数字1开头,第二位为3-9之间的数字,后面跟着9位数字。例如:13912345678。

3.2 格式化金额

function formatMoney(money) {
  var str = money.toString();
  var patt = /(\d)(?=(\d{3})+$)/g;
  return str.replace(patt, "$1,");
}
  • /(\d)(?=(\d{3})+$)/g:使用正则表达式匹配每三位数字,将它们的后面字符串替换成“,”。例如:formatMoney(123456789) 返回 123,456,789。

至此,我们已经了解了 JavaScript 正则表达式和字符串的基础知识。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript正则表达式和字符串RegExp and String(二) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 毕业论文-大型的WEB应用程序开发

    毕业论文-大型WEB应用程序开发攻略 本文将详细介绍如何完成毕业论文中的大型WEB应用程序开发任务。涉及的内容包括:项目规划、技术栈选择、前端设计、后端设计、数据存储、测试和部署等方面。 项目规划 明确项目目标和需求:对于大型WEB应用程序,一般需要设计详细的功能需求和非功能需求,例如性能、可扩展性、数据安全等。 制定项目计划:在项目规划阶段,需要编制具体的…

    JavaScript 2023年5月19日
    00
  • OpenTiny 跨端、跨框架组件库升级TypeScript,10万行代码重获新生

    摘要:一份精心准备的《JS项目改造TS指南》文档供大家参考,顺便介绍TS 基础知识和 TS 在 Vue 中的实践。 本文分享自华为云社区《历史性的时刻!OpenTiny 跨端、跨框架组件库正式升级 TypeScript,10 万行代码重获新生!》,作者:Kagol。 根据 The Software House 发布的《2022 前端开发市场状态调查报告》数据…

    JavaScript 2023年4月17日
    00
  • JS判断数组中是否有重复值得三种实用方法

    下面我详细讲解下“JS判断数组中是否有重复值得三种实用方法”的完整攻略。 方法一:Set对象 利用Set对象可以去除数组中的重复元素,因此,先将原数组利用Set对象去重,然后比较去重后的数组长度和原数组长度即可判断原数组中是否有重复元素。 示例代码如下: let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]; let setArr…

    JavaScript 2023年5月27日
    00
  • JavaScript常用本地对象小结

    下面我将详细讲解JavaScript常用本地对象的知识点,包含对象的定义、属性和方法,以及两个示例说明。 什么是本地对象 在 JavaScript 中,除了语言本身提供的全局对象和全局函数之外,很多对象也是由浏览器端或者 node.js 端提供的本地对象。本地对象可分为三个大类(原生对象、宿主对象、自定义对象),原生对象又称为内置对象。 常用本地对象 本地对…

    JavaScript 2023年5月27日
    00
  • 详解JS WebSocket断开原因和心跳机制

    详解JS WebSocket断开原因和心跳机制 WebSocket 是一个重要的协议,可在浏览器和服务器之间双向通信,且具有较低的延迟和较高的带宽利用率。但是,在实际应用中,WebSocket 经常会由于各种原因而断开连接,为此,我们需要对 WebSocket 的断开原因和心跳机制做详细了解。 WebSocket断开原因 1. 服务器主动关闭 服务器端主动关…

    JavaScript 2023年5月28日
    00
  • JavaScript 应用类库代码

    下面是关于JavaScript应用类库代码的完整攻略: 什么是JavaScript应用类库 JavaScript应用类库是一系列封装好的JavaScript函数和对象,它们能够充分利用JavaScript语言的优势,实现一些特定的功能需求。通过引入JavaScript应用类库,能够方便地完成一些复杂的功能开发,避免重复造轮子,提高开发效率。 常见的JavaS…

    JavaScript 2023年5月27日
    00
  • JavaScript伪数组和数组的使用与区别

    下面我来详细讲解一下“JavaScript伪数组和数组的使用与区别”。 什么是JavaScript数组和伪数组? 在JavaScript中,数组是一种用于存储一组值的集合。数组可以存储不同类型的值,如字符串、数字、对象等等。在JavaScript中使用数组是非常普遍的,它能够更方便地管理和处理一组数据。 伪数组是一种类似于数组的对象,它拥有一些数组的特征,比…

    JavaScript 2023年5月27日
    00
  • jQuery 开发者应该注意的9个错误

    jQuery 开发者应该注意的9个错误 引入jQuery的方式错误 错误的方式如下: <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> 在上述代码的例子中,我们通过引入了互联网上的jquery库来使用它。这种方式是错误的,因为该方…

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