js正则表达式基本语法(精粹)

下面是关于JS正则表达式基本语法的完整攻略。

JS正则表达式基本语法

正则表达式的定义

正则表达式(Regular Expression)是一种可以用于字符串匹配的规则,它可以帮助我们快速地从字符串中提取需要的信息。

正则表达式语法

在JS中,我们可以使用RegExp对象来创建正则表达式,其基本语法如下:

var regExp = new RegExp(pattern, flags);

其中,pattern是正则表达式的模式,可以是字符串或RegExp对象,flags是一个标志位,用于控制正则表达式的匹配方式,其取值如下:

  • i:表示忽略大小写
  • g:表示全局匹配
  • m:表示多行匹配

举个例子,我们可以用正则表达式搜索一个字符串中所有的数字。其中,模式是\d,意思是匹配任意一个数字字符:

var str = "123abc456";
var regExp = /\d/g;
var result = str.match(regExp);
console.log(result);

输出结果为[ '1', '2', '3', '4', '5', '6' ],表示将所有的数字字符都匹配出来了。

正则表达式常用语法

元字符

元字符是正则表达式中的一些特殊字符,用于匹配字符串中的一些特殊符号以及一些特定的字符。常用的元字符有:

  • .:匹配任意一个字符
  • \d:匹配一个数字字符
  • \D:匹配一个非数字字符
  • \s:匹配一个空白字符(空格、制表符等)
  • \S:匹配一个非空白字符
  • \w:匹配一个单词字符(字母、数字、下划线)
  • \W:匹配一个非单词字符

举个例子,在一个字符串中查找所有的数字和下划线,可以使用以下正则表达式:

var str = "hello_123_world";
var regExp = /[\d_]/g;
var result = str.match(regExp);
console.log(result);

输出结果为[ '1', '2', '3', '_' ],表示数字和下划线都被匹配出来了。

量词

量词用于匹配一个或多个重复的字符或者子表达式。常用的量词有:

  • *:匹配前面的表达式0次或多次
  • +:匹配前面的表达式1次或多次
  • ?:匹配前面的表达式0次或1次
  • {n}:匹配前面的表达式恰好出现n次
  • {n,}:匹配前面的表达式至少出现n次
  • {n,m}:匹配前面的表达式至少出现n次,最多出现m次

举个例子,在一个字符串中查找所有的字母,可以使用以下正则表达式:

var str = "hello123world";
var regExp = /[a-zA-Z]+/g;
var result = str.match(regExp);
console.log(result);

输出结果为[ 'hello', 'world' ],表示所有的字母都被匹配出来了。

示例1

判断一个字符串是否为手机号格式:

function isMobilePhone(str) {
  var regExp = /^1[3456789]\d{9}$/;
  return regExp.test(str);
}

console.log(isMobilePhone("13512345678")); // true
console.log(isMobilePhone("12345678901")); // false

在上面的例子中,正则表达式/^1[3456789]\d{9}$/表示:

  • ^:表示开始位置
  • 1:表示字符串的第一个字符必须为数字1
  • [3456789]:表示第二个字符是3456789之间的任意一个数字
  • \d{9}:表示其后紧跟着9个数字字符
  • $:表示结束位置

因此,正则表达式可以精准地匹配手机号格式。

示例2

使用正则表达式对一个银行卡号进行脱敏处理:

function desensitization(str) {
  var regExp = /^(\d{4})(\d*)(\d{4})$/;
  return str.replace(regExp, function(match, p1, p2, p3) {
    return p1 + p2.replace(/\d/g, "*") + p3;
  });
}

console.log(desensitization("6228480402564890018")); // 6228***********0018

在上面的例子中,正则表达式/^(\d{4})(\d*)(\d{4})$/表示:

  • ^:表示开始位置
  • (\d{4}):表示匹配前4个数字字符,并把它们放入第一个捕获组中
  • (\d*):表示匹配0个或多个数字字符,并把它们放入第二个捕获组中
  • (\d{4}):表示匹配后4个数字字符,并把它们放入第三个捕获组中
  • $:表示结束位置

同时,我们使用了str.replace方法来替换字符串中的一部分字符,其中,第二个参数使用了一个匿名函数,用于把第二个捕获组中的所有数字字符都替换为星号*

总结

正则表达式是JS中非常重要的一部分,它可以帮助我们快速地从字符串中提取数据,并在输入框的校验中起到重要作用。掌握正则表达式的基本语法和常用技巧,可以更好地完成我们的编程任务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js正则表达式基本语法(精粹) - Python技术站

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

相关文章

  • js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XX的函数代码

    下面是详细的攻略。 js中文汉字转Unicode 在 js 中,可以使用以下代码将中文汉字转换为 Unicode 码: function chineseToUnicode(str) { var res = []; for (var i = 0; i < str.length; i++) { res[i] = ("00" + str.…

    JavaScript 2023年6月1日
    00
  • 实例解析package.json和最常见的scripts字段

    关于“实例解析package.json和最常见的scripts字段”的攻略,我会提供如下内容: 一、什么是package.json? package.json是Node.js项目中杂项文件中最重要的一份,其定义了项目的基本信息和开发所需的各种依赖以及构建、打包、测试等各个方面的命令和配置。通过这个文件,我们可以更好地管理项目依赖、规范版本、运行脚本等,也可以…

    JavaScript 2023年5月27日
    00
  • 详解用场景去理解函数柯里化(入门篇)

    详解用场景去理解函数柯里化(入门篇)完整攻略 什么是函数柯里化? 函数柯里化是一种将具有 n 个参数的函数转换成只接受一个参数的函数,并返回一个新函数的技术。这个新函数会接受剩余的参数并返回结果。这个过程就像为函数的第一个参数绑定值一样,常用的方式是使用闭包保存参数和状态,再通过函数的多次调用形成链式调用的效果。 柯里化的优势和适用场景 函数柯里化可以让你更…

    JavaScript 2023年5月19日
    00
  • js获取dom的高度和宽度(可见区域及部分等等)

    要获取DOM元素的宽度和高度,我们可以使用JavaScript中的clientWidth和clientHeight属性。这两个属性返回的是DOM元素的可视区域大小,不包括边框和外边距。以下是获取DOM元素宽度和高度的代码: const element = document.getElementById(‘myElement’); const elementW…

    JavaScript 2023年6月10日
    00
  • JS高阶函数原理与用法实例分析

    JS高阶函数原理与用法实例分析 什么是高阶函数? 在JavaScript语言中,高阶函数是指能够以函数作为参数或返回值的函数。换句话说,高阶函数是处理其他函数的函数。 高阶函数的原理 在JavaScript中,函数本身就是一种对象,可以像其他对象一样作为函数参数或返回值传递。高阶函数的原理就是基于这种JavaScript函数作为对象的特性实现。 通过高阶函数…

    JavaScript 2023年5月27日
    00
  • js实现带有介绍的Select列表菜单实例

    实现带有介绍的Select列表菜单需要用到HTML、CSS和JavaScript技术。 HTML结构 首先,在HTML文件中创建一个Select元素以及对应的option选项,如下所示: <label for="menu">请选择菜单:</label> <select id="menu"&…

    JavaScript 2023年6月11日
    00
  • 解决 JScript 中使用日期类型数据时出现类型错误的问题

    当在 JScript 中使用日期类型数据时,有时会遇到类型错误的问题,这是因为 JScript 中的日期类型是 COM/OLE Automation 中的 Variant 类型转换成的。Variant 类型有不同的子类型,而 Date 是其中的一种。下面介绍一些解决这个问题的方法: 方法一:使用 new Date() 使用 new Date() 可以将字符串…

    JavaScript 2023年6月10日
    00
  • 超全面的JavaScript开发规范(推荐)

    超全面的JavaScript开发规范 JavaScript规范是多数开发者应遵守的一些指导原则,可以提高代码的可读性、可维护性和可扩展性。在本文中,将介绍一个超全面的JavaScript开发规范,以及如何使用它来提高你的代码质量。 1. 命名规范 1.1 变量命名规范 变量名应该具有描述性,能够清楚地反映变量所代表的内容。变量名应采取小写字母,单词之间使用下…

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