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

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日

相关文章

  • JavaScript在浏览器标题栏上显示当前日期和时间的方法

    要在浏览器标题栏上显示当前日期和时间,我们可以使用JavaScript来动态显示。 步骤 获取当前日期和时间 使用Date对象获取当前日期和时间。可以使用如下代码获取当前日期和时间: var currentDatetime = new Date(); 格式化日期和时间 我们可以使用JavaScript的Date对象的方法来格式化日期和时间。使用toISOSt…

    JavaScript 2023年5月27日
    00
  • 在页面中引入js的两种方法(推荐)

    在页面中引入JavaScript脚本有两种主要的方法,分别是通过script标签嵌入JavaScript代码和通过外部文件引入JavaScript代码。 嵌入JavaScript代码 要嵌入JavaScript代码,我们可以使用<script>标签来完成,在<script>标签中写入JavaScript代码,将其嵌入HTML页面即可。…

    JavaScript 2023年5月27日
    00
  • js读写json文件实例代码

    当我们需要读写JSON文件时,我们可以使用Node.js中的fs模块进行操作。下面是使用Node.js读写JSON文件的两个示例: 示例一:读取JSON文件 首先,在JavaScript文件的开头引入 fs 模块,并使用 fs.readFileSync()方法读取JSON文件: const fs = require(‘fs’); const data = f…

    JavaScript 2023年5月27日
    00
  • vue electron实现无边框窗口示例详解

    下面是对“Vue Electron实现无边框窗口示例”的详细讲解。 1. 前置条件 在进行本示例的操作前,需要具备以下基本条件: 了解Vue.js框架的基本概念和应用方法; 了解Electron框架的基本概念和应用方法; 熟悉JavaScript、HTML和CSS等基本前端开发技能。 2. 创建Vue项目 可以通过Vue-CLI来快速创建一个Vue项目,在命…

    JavaScript 2023年6月11日
    00
  • JS遍历DOM文档树的方法实例详解

    下面是关于“JS遍历DOM文档树的方法实例详解”的完整攻略。 标题 JS遍历DOM文档树的方法实例详解 简介 在编写JavaScript代码时,遍历DOM文档树是非常常见的操作。例如,查找某个元素、对所有子元素进行操作等等。本文将介绍以下5个遍历DOM文档树的方法: getElementById getElementsByTagName getElement…

    JavaScript 2023年5月28日
    00
  • JavaScript DOM常用操作代码汇总

    JavaScript DOM常用操作代码汇总 概述 JavaScript是一种强大的脚本语言,可以用来操作HTML页面中的文本、元素、样式和事件。DOM(Document Object Model)是一种将HTML文档解析成树形结构的API(应用程序接口),使得JavaScript可以对文档中的元素进行访问和操作。本文将提供JavaScript DOM的常用…

    JavaScript 2023年6月10日
    00
  • 原生JS中应该禁止出现的写法

    当使用原生JavaScript编写代码时,需要注意一些写法上的问题,避免引发不必要的错误或者性能问题。以下是几个应该禁止出现的写法。 1. 使用 document.write document.write 是一种在网页中输出HTML的方法,但是它的使用会破坏页面的结构,降低性能,还可能引起安全问题。当使用 document.write 时,浏览器会强制停止所…

    JavaScript 2023年6月10日
    00
  • 改变状态栏文字的js代码

    要通过JS代码来改变网页的状态栏文字,可以使用document.title属性。这个属性可以读取和设置当前网页的标题,同时一些浏览器也会将其作为状态栏文字显示。 下面是两个针对页面不同状态,使用JS代码改变状态栏文字的例子。 例子1:在鼠标hover链接时,将链接地址作为状态栏文字显示 在这个例子中,我们可以利用JS来改变链接的状态栏文字。当用户将鼠标指向链…

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