js中的正则表达式入门(大量实例代码)

yizhihongxing

接下来我会详细讲解“js中的正则表达式入门(大量实例代码)”的攻略。

什么是正则表达式?

正则表达式是一种用于匹配字符串的模式,是一种强大而灵活的工具。它们由普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)组成。举个例子,用正则表达式来匹配邮箱中的@符号:

/@/

这个正则表达式表示匹配字符串中的@符号。

正则表达式语法

正则表达式语法十分丰富,可以匹配几乎所有的字符串模式。

字符匹配

  • 普通字符:匹配自身字符。例如,正则表达式/abc/表示匹配字符串中的"abc"。

  • 元字符(元字符前面需要加上反斜杠):

  • .:匹配任意单个字符。例如,表达式/a./可以匹配"ab"、"ax"、"ao"等。

  • \d:匹配数字0-9。例如,表达式/\d+/可以匹配"123"、"4567"等。

  • \w:匹配字母、数字和下划线。例如,表达式/\w/可以匹配"a"、"b"、"1"、"_"等。

预定义字符集

预定义字符集是一些已经定义好的字符集。

  • \s:匹配任意空白字符,包括空格、制表符、换行符等。例如,表达式/\s/可以匹配" "、"\t"、"\n"等。

  • \w:匹配任何字母数字字符,包括下划线。例如,表达式/\w/可以匹配"a"、"b"、"1"、"_"等。

  • \d:匹配任何数字字符。例如,表达式/\d/可以匹配"1"、"2"、"3"等。

量词

量词表示匹配次数。

  • +:匹配1次或多次。例如,表达式/a+/可以匹配"aaa"、"abca"、"a"等。

  • *:匹配0次或多次。例如,表达式/a*/可以匹配""、"a"、"aa"等。

  • ?:匹配0次或1次。例如,表达式/a?b/可以匹配"b"、"ab"等。

  • {n}:匹配n次。例如,表达式/a{3}/可以匹配"aaa",但不能匹配"aa"或"a"。

  • {n,}:匹配n次或更多次。例如,表达式/a{3,}/可以匹配"aaa"、"aaaa"等。

  • {n,m}:匹配n到m次。例如,表达式/a{3,5}/可以匹配"aaa"、"aaaa"、"aaaaa",但不能匹配"aa"或"a"。

分组和引用

分组可以将正则表达式中的多个字符作为一个单独的单元进行匹配。

  • 捕获分组:用括号将想要匹配的字符括起来。例如,表达式/(\w+)/可以匹配任何一个单词。

  • 零宽断言:零宽断言不占用字符,例如提供前缀或后缀匹配。例如,表达式/\bw\w+\b(?<!wet)/可以匹配以w开头、不是以wet结尾的单词。

示例代码

接下来,我会提供两个示例代码,来说明正则表达式的用处:

示例1

需求:判断一个字符串是否是合法的email地址。

function isEmail(str) {
  var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/;
  return pattern.test(str);
}

这个正则表达式包含了多个部分,我们来逐步分析:

  • ^:匹配字符串的开始位置。
  • ([a-zA-Z0-9._-])+:匹配一个或多个由字母、数字、点、下划线、中划线组成的字符串。
  • @:匹配一个@符号。
  • ([a-zA-Z0-9_-])+:匹配一个或多个由字母、数字、中划线、下划线组成的字符串。
  • (\.[a-zA-Z0-9_-]+)+:匹配一个或多个由点和字母、数字、中划线、下划线组成的字符串。
  • $:匹配字符串的结束位置。

这个正则表达式通过匹配email地址的常见格式,进行email地址验证。

示例2

需求:将html字符串中的所有img标签的src属性值提取出来。

var html = '<img src="1.jpg"><img src="2.jpg">';
var pattern = /<img\s+src=['"](.*?)['"]/gi;
var match;
while ((match = pattern.exec(html)) !== null) {
  console.log(match[1]);
}

这个正则表达式也包含了多个部分:

  • <img:匹配"<img"字符串。
  • \s+:匹配一个或多个空格字符。
  • src=:匹配"src="字符串。
  • ['"]:匹配单引号或双引号。
  • (.*?):匹配任意字符,但尽可能少的匹配。
  • ['"]:再次匹配单引号或双引号。

通过这个正则表达式,我们可以把一个html字符串中的所有img标签的src属性值提取出来。

结语

到这里,我们就讲解了js中的正则表达式入门(大量实例代码),通过以上内容应该能使大家对正则表达式有一个较为全面的认识,然后在日常开发中就能更自如地运用正则表达式了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中的正则表达式入门(大量实例代码) - Python技术站

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

相关文章

  • 从Node.js事件触发器到Vue自定义事件的深入讲解

    从 Node.js 事件触发器到 Vue 自定义事件的深入讲解 1. Node.js 事件触发器 在 Node.js 中,事件触发器是一个非常重要的模块。它是 Node.js 中实现异步、非阻塞 I/O 的基础。事件触发器提供了一种机制,可以让开发者注册事件处理函数,并在某个特定事件发生时执行这些函数。 Node.js 中的事件触发器是通过 events 模…

    node js 2023年6月8日
    00
  • 实例分析nodejs模块xml2js解析xml过程中遇到的坑

    实例分析nodejs模块xml2js解析xml过程中遇到的坑 简介 在使用Node.js进行XML解析的时候,我们通常会使用nodejs模块xml2js,但是在实际使用过程中,我们可能会遇到一些坑点,本文将围绕使用xml2js进行XML解析过程中的坑点进行示例分析。 xml2js模块的安装和使用 可以通过以下指令安装xml2js模块: npm install…

    node js 2023年6月8日
    00
  • 详解vue+nodejs获取多个表数据的方法

    关于“详解vue+nodejs获取多个表数据的方法”的完整攻略,以下是详细步骤和示例说明。 步骤: 创建一个Vue项目: vue create project_name 安装axios和vue-resource: npm install axios vue-resource –save 在main.js中引入Vue和vue-resource: import…

    node js 2023年6月8日
    00
  • 微信小程序 Buffer缓冲区的详解

    微信小程序 Buffer缓冲区的详解 1. 什么是 Buffer 在 JavaScript 中,Buffer 是一个用于处理二进制数据的类。它的实例类似于整数数组,但它用于在 TCP 流、文件系统操作、以及其他上下文中处理原始的二进制数据。在 Node.js 中经常使用 Buffer 类来处理数据流,它是 Node.js 中处理网络数据流的重要基础。 在微信…

    node js 2023年6月8日
    00
  • nodejs微信开发之授权登录+获取用户信息

    那么让我们来详细讲解一下“Node.js微信开发之授权登录+获取用户信息”的完整攻略。 准备工作 在开始正式的开发之前,我们需要准备以下几项: 1. 注册开发者账号 首先我们需要注册一个微信开发者账号,这个账号可以在微信公众平台申请。注册完成之后,我们需要在后台创建一个新的公众号应用,在创建应用的过程中,我们需要在基本配置选项卡中设置好服务器的回调地址。 2…

    node js 2023年6月8日
    00
  • Node.js实战之Buffer和Stream模块系统深入剖析详解

    Node.js实战之Buffer和Stream模块系统深入剖析详解 什么是Buffer和Stream Buffer是用于处理二进制数据的模块,它将数据存储在内存中的固定大小的缓冲区中,可以快速地分配和释放内存并进行快速且高效的读写操作。 Stream则是一种处理数据流的模块,用于处理实时数据源如网络、文件等产生的数据。Stream可以将数据分成小块,这样就可…

    node js 2023年6月8日
    00
  • NodeJs使用webpack打包项目的方法详解

    下面是“NodeJs使用webpack打包项目的方法详解”的完整攻略: 简介 本文将详细介绍如何使用Webpack打包Node.js项目。Webpack是一个模块打包工具,支持CommonJS、AMD、ES Module等多种模块化开发规范。在Node.js项目中使用Webpack可以将项目中的模块打包成一个或者多个代码块(bundle),通过工具实现模块化…

    node js 2023年6月8日
    00
  • node.js中的fs.unlinkSync方法使用说明

    下面是详细的攻略: Node.js中的fs.unlinkSync方法使用说明 简介 在Node.js中,fs.unlinkSync方法用于同步删除指定的文件。该方法会立即删除指定的文件,如果文件不存在,则会抛出异常。 该方法属于fs模块中的一个同步方法,用于对文件进行操作。在使用该方法时需要特别注意,因为在同步模式下,如果该方法执行的时间过长,则会阻塞整个N…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部