javascript学习笔记(十二) RegExp类型介绍

yizhihongxing

下面是关于“javascript学习笔记(十二) RegExp类型介绍”的完整攻略。

RegExp类型介绍

RegExp类型是JS语言中表示正则表达式的类型。正则表达式是一种用于模式匹配的工具,可以用来匹配字符串中的文本模式,在字符串的搜索、替换、切割等操作中特别方便。

创建RegExp实例

创建RegExp实例的两种方式:

  1. 字面量方式

javascript
var regExp = /test/i;

这里的 / 是一个分隔符,它表示接下来的是正则表达式的内容,i 是一个修饰符,表示匹配时忽略大小写。

  1. 构造函数方式

javascript
var regExp = new RegExp("test", "i");

这里的第一个参数是正则表达式的内容,第二个参数是修饰符。注意,这里的正则表达式字符串中需要使用双反斜杠(\)对一些特殊字符进行转义,例如 \\d 表示匹配数字,而 \d 会直接被解释为字母 "d"。

正则表达式的方法

RegExp类型提供了一系列用于操作正则表达式的方法,这里只列举一些常用的方法:

  • test():测试字符串是否匹配正则表达式。
  • exec():函数用来检索字符串中与正则表达式匹配的值。

其中,test() 方法返回一个布尔值,表示是否匹配成功;exec() 方法返回一个数组,第一个元素是匹配到的结果,后面的元素是分组捕获的结果。

举个例子,下面将使用正则表达式匹配一个字符串:

var str = "Hello, World!";
var regExp = /o/g;
console.log(regExp.test(str)); // true
console.log(regExp.exec(str)); // ["o", index: 4, input: "Hello, World!", groups: undefined]
console.log(regExp.exec(str)); // ["o", index: 7, input: "Hello, World!", groups: undefined]

这里匹配的正则表达式是 /o/g,它表示匹配所有的字母 "o"。第一次执行exec()方法时,返回的是字符串中的第一个字母 "o",第二个执行时,返回的是字符串中的第二个字母 "o"。

在使用exec函数时,我们可以通过分组来捕获匹配到的值。例如:

var str = "Hello, 123!";
var regExp = /^Hello,\s(\d+)$/ig;
var res = regExp.exec(str);
if (res) {
  console.log(res[0]); // 匹配到的整个字符串 "Hello, 123!"
  console.log(res[1]); // 分组中捕获的数字 123
}

这里的正则表达式是 /^Hello,\s(\d+)$/ig,表示匹配以 "Hello," 开头,然后是一个或多个空格,最后是一个或多个数字,全局匹配,忽略大小写。捕获的内容是正则表达式中的一个分组 (\d+)

正则表达式的规则

正则表达式中包含很多特殊字符和规则,下面列举一些常用的:

  • 字符类

[abc] 表示匹配单个字符 a、b 或 c。

[^abc] 表示匹配单个字符,但不能是 a、b 或 c。

  • 字符范围

[a-z] 表示匹配单个小写字母。

[A-Z] 表示匹配单个大写字母。

[0-9] 表示匹配单个数字。

  • 数量限定符

* 表示匹配前面的模式零次或多次。

+ 表示匹配前面的模式一次或多次。

? 表示匹配前面的模式零次或一次。

{n} 表示匹配前面的模式恰好 n 次。

{n,} 表示匹配前面的模式至少 n 次。

{n,m} 表示匹配前面的模式至少 n 次,但不超过 m 次。

  • 边界匹配

^ 表示匹配字符串的开头。

$ 表示匹配字符串的结尾。

\b 表示匹配一个单词边界。

  • 特殊字符

. 表示匹配除换行符以外的任意一个字符。

\d 表示匹配数字。

\D 表示匹配非数字。

\s 表示匹配任意空白字符,包括空格、制表符、换行符等。

\S 表示匹配非空白字符。

\w 表示匹配单词字符,包括字母、数字、下划线。

\W 表示匹配非单词字符。

使用正则表达式的示例

  1. 匹配邮政编码

邮政编码是6位数字,可以使用正则表达式进行匹配:

javascript
var postCode = "610000";
var regExp = /^\d{6}$/;
console.log(regExp.test(postCode)); // true

这里的正则表达式是 /^\d{6}$/,表示匹配6位数字,开头和结尾不能有其他字符。

  1. 匹配邮箱地址

邮箱地址包括用户名和域名两部分,它们之间用@符号隔开,可以使用正则表达式进行匹配:

javascript
var email = "test@example.com";
var regExp = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
console.log(regExp.test(email)); // true

这里的正则表达式是 /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,表示匹配符合邮箱地址格式的字符串,包括用户名和域名两部分,其中用户名部分可以包括字母、数字、下划线、点、加号、减号和百分号,域名部分可以包括字母、数字、点和减号,后缀部分最少需要2个字母。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript学习笔记(十二) RegExp类型介绍 - Python技术站

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

相关文章

  • 深入浅析JavaScript中的Function类型

    让我们来深入浅析JavaScript中的Function类型。 1. Function类型介绍 在JavaScript中,Function类型是一等公民(first-class citizen)。这意味着你可以把函数赋值给变量,把函数作为参数传递给其他函数,以及把函数作为返回值。Function类型的实例是函数,可以像普通变量一样在代码中运用。 函数的创建 …

    JavaScript 2023年5月27日
    00
  • JavaScript框架设计模式详解

    JavaScript 框架设计模式是指在各种 JavaScript 应用和框架中使用的一种处理问题和实现功能的设计方法。下面详细讲解一下这种设计模式的完整攻略。 1. 了解模块化设计 JavaScript 应用程序的模块化设计允许开发人员将整个系统分解成逻辑上相关的不同模块。这使得代码更加整洁和可维护,并允许代码重复使用。 2. 使用设计模式 在 JavaS…

    JavaScript 2023年6月10日
    00
  • JavaScript对象模型-执行模型

    JavaScript对象模型(DOM)和执行模型是JavaScript语言的两个重要方面,它们是开发Web应用程序的必备技能之一。在本篇攻略中,我们将重点讲解JavaScript对象模型和执行模型的概念以及如何使用它们来创建交互式Web应用。 JavaScript 对象模型 JavaScript对象模型(DOM)是一套API,它定义了访问和处理HTML和XM…

    JavaScript 2023年5月27日
    00
  • js删除对象属性的多种方法举例

    关于“js删除对象属性的多种方法举例”的攻略,我来给你详细讲解一下。 一、删除对象属性的多种方法 1. 使用 delete 操作符 使用 delete 操作符可以删除对象的指定属性。具体语法如下: delete objectName.propertyName; 其中,objectName 是指要删除属性的对象,propertyName 是指要删除的属性名。需…

    JavaScript 2023年5月27日
    00
  • JS实现字符串转驼峰格式的方法

    JS实现字符串转驼峰格式的方法,可以通过使用正则表达式和replace方法来实现。下面是一个完整的攻略: 使用正则表达式和replace方法实现 步骤如下: 通过正则表达式匹配所有需要转换为驼峰格式的字符串。 javascript/[-_]\w/g [-_]表示要匹配的分隔符可以是 – 或 _ ,方括号[]表示单字符匹配 \w表示匹配任何字母数字字符,等价于…

    JavaScript 2023年5月28日
    00
  • 浅析Javascript使用include/require

    浅析 Javascript 使用 include / require Javascript 不同于其他编程语言存在预编译及模板引入机制,因此导致在项目开发过程中可能出现一个 JS 文件需要导入其他 JS 文件中的函数或变量的情况,此时就需要使用 include 或 require 进行模块引入操作。 include 与 require include 与 r…

    JavaScript 2023年5月27日
    00
  • Javascript中window.name属性详解

    让我给您详细讲解一下 “Javascript中window.name属性详解”。 什么是window.name属性? 在JavaScript中,window是指向浏览器窗口的全局对象,其中name是window对象的一个属性。window.name属性是一个字符串,通常用于存储窗口名称或标识符,它的值可以跨越页面重载和跨域名保持不变。 window.name…

    JavaScript 2023年6月11日
    00
  • JS中SetTimeout和SetInterval使用初探

    我来为你详细讲解一下 “JS中SetTimeout和SetInterval使用初探”的攻略,包括示例说明: 简介 在 JS 中,setTimeout 和 setInterval 都能用来设置定时器,它们都是 window 对象的方法。它们非常常用,能够通过回调函数的方式实现一些延时操作或者是循环操作。这里我会结合示例带领大家初步了解它们的使用。 setTim…

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