一篇文章搞懂JavaScript正则表达式之方法

yizhihongxing

下面是“一篇文章搞懂JavaScript正则表达式之方法”的完整攻略:

什么是正则表达式

正则表达式(Regular Expression,regex,RegExp)是一种用来进行字符串匹配的工具。它通过一些特定字符的组合和描述规则来匹配文本中的字符序列。JavaScript 中使用正则表达式同样非常方便。

创建正则表达式

在 JavaScript 中,有两种常见的方式来创建正则表达式:

  1. 字面量方式

使用斜杠(/)包括正则表达式的模式,后面可以跟一些修饰符。例如:

let pattern = /hi/gi;

这个正则表达式的模式是“hi”,修饰符“gi”表示全局匹配和忽略大小写。

  1. 构造函数方式

使用 RegExp 对象来创建正则表达式,传入参数是正则表达式的模式和修饰符。例如:

let pattern = new RegExp("hi", "gi");

匹配字符串

要使用正则表达式对字符串进行匹配,可以使用 String 对象的 match() 方法。它会返回一个数组,数组的元素就是匹配到的结果。例如:

let pattern = /hi/gi;
let str = "Hi,How are you? hi";
let result = str.match(pattern);
console.log(result);

结果输出:["Hi", "hi"]

正则表达式元字符和特殊字符

正则表达式的基础是元字符和特殊字符。其中,元字符(也称为原义字符)代表了自身,特殊字符则有特殊含义,并不代表自身。下面列出一些常见的元字符和特殊字符:

字符 说明
. 匹配除了换行符以外的任意字符
\w 匹配任意字母、数字、下划线
\W 匹配除了字母、数字、下划线以外的任意字符
\d 匹配任意数字
\D 匹配除了数字以外的任意字符
\s 匹配任意空白字符(包括空格、制表符和换行符等)
\S 匹配除了空白字符以外的任意字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
\b 匹配单词的边界
\B 匹配不在单词边界的位置

贪婪匹配和非贪婪匹配

在正则表达式中,*、+ 和 ? 这三个元字符都是贪婪匹配的,会尽可能多地匹配字符。如果想要改成非贪婪匹配,需要在这三个元字符后面加上 ?,例如:

let str = "aa<a>bb<a>cc";
console.log(str.match(/<.+?>/g));

结果输出:["<a>", "<a>"]

示例

例子一

假设有一个电话号码格式为 0517-88888888(其中 0517 代表区号,8 个数字表示电话号码),要从一段文本中提取出这样格式的电话号码,可以使用正则表达式。

let str = '这是我的电话号码:0517-88888888,请联系我!';
let pattern = /\d{4}-\d{8}/;
let result = str.match(pattern);
console.log(result);

结果输出:["0517-88888888"]

例子二

假设有一段文本,其中有多个人名,要从中根据一定的规则提取人名前的称呼,例如:

李小明先生、王小丽女士,您好!

可以使用正则表达式 /[\u4e00-\u9fa5]{2,4}(?=先生|女士)/g 来匹配。

其中 [\u4e00-\u9fa5] 匹配汉字,{2,4} 表示匹配两到四个汉字,(?=先生|女士) 表示仅当后面有“先生”或“女士”之一的时候才匹配。

let str = '李小明先生、王小丽女士,您好!';
let pattern = /[\u4e00-\u9fa5]{2,4}(?=先生|女士)/g;
let result = str.match(pattern);
console.log(result);

结果输出:["李小明", "王小丽"]

以上就是“一篇文章搞懂JavaScript正则表达式之方法”的完整攻略,希望可以帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章搞懂JavaScript正则表达式之方法 - Python技术站

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

相关文章

  • create-react-app项目配置全解析

    create-react-app 项目配置全解析 create-react-app 是基于 React 的官方脚手架工具,使用 create-react-app 可以快速构建一个 React 应用,并且默认已经配置了一些开发所需的基础配置,可以省去我们自己手动配置的过程。 安装 使用 create-react-app 前需要先全局安装该工具,使用以下命令进行…

    JavaScript 2023年6月10日
    00
  • JS 添加网页桌面快捷方式的代码详细整理

    下面是“JS 添加网页桌面快捷方式的代码详细整理”的完整攻略。 什么是网页桌面快捷方式 网页桌面快捷方式指的是在计算机桌面上创建的一个链接,可以直接打开指定网页。用户只需点击桌面图标即可快速访问网页,无需打开浏览器、输入网址等操作。 实现方式 要在网页中添加桌面快捷方式,需要使用JavaScript。下面是整个实现过程的步骤: 首先,需要判断浏览器是否支持该…

    JavaScript 2023年5月27日
    00
  • 详解vue中$router和$route的区别

    下面就是详解vue中$router和$route的区别的完整攻略: 什么是$router和$route 在Vue.js中,$router和$route都是Vue.js中管理路由的对象,用来实现路由跳转和管理当前路由状态的。 $router: 全局路由对象,包含整个路由的信息,例如:路由路径、路由参数、路由方法等。 $route: 当前路由对象,包含当前路由的…

    JavaScript 2023年6月11日
    00
  • js实现获取两个日期之间所有日期的方法

    首先,我们可以利用 JavaScript 中的 Date 对象来进行日期计算和格式化,从而实现获取两个日期之间所有日期的方法。以下是实现方法的步骤: 定义一个函数,接收两个参数,表示开始日期(start)和结束日期(end)。 利用 Date.parse() 方法将日期字符串转换为时间戳,方便后面的计算。 利用 Math.abs() 方法求出两个日期之间的毫…

    JavaScript 2023年5月27日
    00
  • JavaScript精炼之构造函数 Constructor及Constructor属性详解

    JavaScript精炼之构造函数 Constructor及Constructor属性详解 什么是构造函数 在面向对象编程中,构造函数是创建对象的一种特殊方法。它用于创建并初始化由该类创建的对象,可以简单理解为一个模板,用来创建对象。 构造函数的语法 构造函数的语法格式为: function ConstructorName(arguments) { // 对…

    JavaScript 2023年6月10日
    00
  • JavaScript实现烟花特效(面向对象)

    当下,烟花特效是web前端常见的动画效果之一,本攻略将详细介绍如何通过JavaScript编写实现烟花特效。 步骤一:创建HTML文件 在开发本特效之前,首先需要建立一个HTML文件用于展示页面内容。以下是一个基本的HTML模板,用户可以根据需要添加和修改其他元素: <!DOCTYPE html> <html> <head&gt…

    JavaScript 2023年6月10日
    00
  • Javascript中Eval函数的使用

    当我们需要将某个字符串当做JavaScript代码来执行时,Eval函数就可以派上用场了。Eval函数的学习对于理解和书写高级JavaScript代码具有一定的帮助。 什么是 Eval 函数 Eval函数是JavaScript内置的一个全局函数,可以将指定的字符串解析为JavaScript代码并执行。通常我们会把一段需要执行的JavaScript代码以字符串…

    JavaScript 2023年5月28日
    00
  • JavaScript 映射器 array.flatMap()

    JavaScript的映射器array.flatMap()方法可以将一个数组的每个元素映射到另一个数组中,然后将所有的映射结果压缩成一个新数组。这个方法适用于一些场景,例如需要从一个二维数组中提取子数组元素,或者想要将多个数组合并成一个新的数组。下面是详细的攻略: 1. 语法 array.flatMap(callback(currentValue[, ind…

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