JavaScript中正则表达式判断匹配规则及常用方法

yizhihongxing

JavaScript中正则表达式判断匹配规则及常用方法

正则表达式是一种强大的文本匹配工具,可以用于查找、替换和验证字符串。JavaScript中的正则表达式使用RegExp对象来创建和操作。

创建正则表达式

在JavaScript中,可以使用字面量或构造函数来创建正则表达式。

字面量创建

字面量使用斜杠(/)将正则表达式括起来,后接标志(可选)。例如:

let pattern = /abc/; //创建一个匹配'abc'的正则表达式

构造函数创建

构造函数接收2个参数,第1个是正则表达式字符串,第2个是标志字符串。例如:

let pattern = new RegExp('abc'); //创建一个匹配'abc'的正则表达式

正则表达式标志

正则表达式标志是指影响正则表达式匹配行为的字符,通常包括以下3个:

  • g(全局匹配):查找所有匹配项,而非在找到第1个匹配项时停止。
  • i(忽略大小写):大小写不区分。
  • m(多行匹配):启用多行模式, "^" 和 "$" 将匹配每行的开头和结尾。

这些标志可以单独使用,组合使用,也可以不使用。例如:

let pattern = /abc/gi; //创建一个全局、忽略大小写的正则表达式,用于匹配'abc'

正则表达式方法

RegExp对象提供了以下一些方法来操作正则表达式。

test()

test()方法用于测试字符串是否匹配正则表达式。返回值为true或false。例如:

let pattern = /abc/i;
console.log(pattern.test('Abc')); //true
console.log(pattern.test('def')); //false

exec()

exec()方法用于在字符串中匹配正则表达式。返回一个数组,该数组包含匹配的首个子串及匹配的分组(如果有的话)。如果没有匹配到,则返回null。例如:

let pattern = /([0-9]+)-([0-9]+)-([0-9]+)/;
let date = '2021-10-31';
let match = pattern.exec(date);
console.log(match); //[ '2021-10-31', '2021', '10', '31', index: 0, input: '2021-10-31', groups: undefined ]

match数组包含整个匹配项和捕获到的分组, match[0]为整个匹配项,match[1]为第1个分组,以此类推。

常用正则表达式语法

以下是一些常用的正则表达式语法:

字符类

字符类用于匹配一个字符的集合:

  • [abc]:匹配a、b或c中的任意1个字符。
  • [a-z]:匹配a到z中的任意1个字符。
  • [^abc]:匹配不是a、b或c中的任意1个字符。
  • [^a-z]:匹配不是a到z中的任意1个字符。

例如:

let pattern = /a[bcd]e/i;
console.log(pattern.test('abcde')); //true
console.log(pattern.test('abe')); //false

量词

量词用于指定模式出现的次数:

  • +:匹配1个或多个。
  • *:匹配零个或多个。
  • ?:匹配零个或1个。
  • {n}:匹配n个。
  • {n,m}:匹配n到m个。
  • {n,}:匹配n个或多个。

例如:

let pattern = /[0-9]+/g;
console.log('hello 123 world 456'.match(pattern)); // [ '123', '456' ]

边界

边界用于匹配字符串的边缘:

  • ^:匹配行的开头。
  • $:匹配行的结尾。
  • \b:匹配单词边界。
  • \B:匹配非单词边界。

例如:

let pattern = /^a/g;
console.log(pattern.test('abc')); //true
console.log(pattern.test('bbc')); //false

分组和引用

分组用于将一组字符当作整体进行匹配:

  • ():将括号内的字符当作一组。
  • \n:引用第n个分组。

例如:

let pattern = /(\d{3})-(\d{3,8})/;
let phone = '010-12345678';
let match = pattern.exec(phone);
console.log(match); // [ '010-12345678', '010', '12345678', index: 0, input: '010-12345678', groups: undefined ]

这里用括号将区号和电话号码分别分组,并通过引用分组号码来获取这两个部分。

总结

本文详细讲解了JavaScript中正则表达式判断匹配规则及常用方法。了解正则表达式的基本语法及用法,可以帮助我们更方便、高效地操控字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中正则表达式判断匹配规则及常用方法 - Python技术站

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

相关文章

  • js函数中onmousedown和onclick的区别和联系探讨

    我们就按照以下步骤来讲解 js 函数中 onmousedown 和 onclick 的区别和联系。 1. onmousedown 和 onclick 的作用 在开始讲解 onmousedown 和 onclick 的区别之前,我们先来了解一下它们的作用。 onmousedown:当鼠标按下某个元素时触发。 onclick:当鼠标点击某个元素时触发。 这两个事…

    JavaScript 2023年5月28日
    00
  • js中数组Array的一些常用方法总结

    接下来我将详细讲解“js中数组Array的一些常用方法总结”,内容分为以下部分: 概述 数组的创建和赋值 数组的常用方法 1. 概述 数组是 JavaScript 中最常用的数据类型之一,它可以容纳多个值,并按照一定的顺序进行存储和访问。在 JavaScript 中,数组是动态的,即在创建数组时不需要指定其大小,而可以根据需要动态添加或删除元素。 2. 数组…

    JavaScript 2023年5月27日
    00
  • JavaScript实现请求服务端接口方法详解

    JavaScript实现请求服务端接口方法详解 一、概述 在Web开发中,经常需要从服务端获取数据或提交数据到服务端。这时,我们可以通过AJAX技术来完成数据的异步交互。使用JavaScript实现异步请求服务端接口,可以大大提升用户体验和页面的交互性。在本文中,我们将详细介绍使用JavaScript实现请求服务端接口的方法,以及两个示例说明。 二、使用XM…

    JavaScript 2023年6月11日
    00
  • JavaScript常用基础知识强化学习

    JavaScript常用基础知识强化学习攻略 1. 前置知识 在进行JavaScript常用基础知识的强化学习之前,需要掌握以下前置知识: HTML和CSS基础知识 程序基本结构(语句、循环、条件判断等) 数据类型、变量、运算符 函数、对象、数组 2. 基础知识强化学习方法 2.1 阅读MDN文档 MDN提供了JavaScript的完整文档,包含了语言核心、…

    JavaScript 2023年6月10日
    00
  • JavaScript图片的Base64编码以及转换详解

    JavaScript图片的Base64编码以及转换详解 在进行前端开发时,我们会遇到需要将图片转换为Base64编码的情况,本篇攻略将会详细讲解JavaScript如何进行图片的Base64编码以及如何进行Base64编码的还原。 图片的Base64编码 在JavaScript中,可以使用FileReader的方法将图片读取为base64格式的字符串,具体步…

    JavaScript 2023年5月19日
    00
  • JS通用方法触发点击事件代码实例

    下面是“JS通用方法触发点击事件代码实例”的完整攻略。 标题 JS通用方法触发点击事件代码实例 正文 在编写前端代码时,我们经常需要触发某些元素的点击事件,例如模拟用户点击按钮进行跳转等操作。那么如何通过JS来触发点击事件呢? 通过click()方法触发点击事件 我们可以通过Element对象的click()方法来触发点击事件。以下是一个HTML代码示例: …

    JavaScript 2023年6月11日
    00
  • JS异步文件上传(兼容IE8+)

    首先,让我们来了解一下什么是异步文件上传。 异步文件上传是指在上传过程中,不会阻塞页面的其他操作,而是在后台进行上传操作。这种方式提高了用户体验,同时也提升了网站性能。 现在,我们来了解一下如何使用 JavaScript 实现异步文件上传。 实现步骤 为 input 元素绑定 change 事件,获取用户选择的文件。 使用 FormData 对象封装文件数据…

    JavaScript 2023年5月27日
    00
  • JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化 typeof的缺陷 在JavaScript中,typeof操作符用于检测一个变量或表达式的数据类型,返回一个字符串常量。 typeof variable typeof操作符返回的结果只有一下几种: “undefined”: 如果变量没有被赋值或者值为undefined “bo…

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