JavaScript高级程序设计(第3版)学习笔记12 js正则表达式

下面是详细的攻略:

JavaScript高级程序设计(第3版)学习笔记12 js正则表达式

简介

本篇学习笔记介绍JavaScript正则表达式的基础知识,包括正则表达式的定义、创建、元字符、模式修饰符、贪婪与非贪婪匹配、匹配位置等知识点。

正则表达式的定义

正则表达式是一种用来匹配字符串模式的方法,它由一个或多个字符和特殊字符组成,表示一种模式,用于与字符串进行匹配。在JavaScript中,正则表达式是一个对象,由RegExp构造函数实例化而来。

创建正则表达式的两种方式

在JS中可以使用两种方式来创建正则表达式:

  1. 使用字面量方式创建:var pattern = /正则表达式/模式修饰符
  2. 使用RegExp构造函数创建:var pattern = new RegExp('正则表达式', '模式修饰符')

其中模式修饰符有以下几种:

  • g:全局匹配
  • i:不区分大小写
  • m:多行匹配
  • s:允许点(.)匹配换行符
  • u:Unicode匹配
  • y:执行“粘性”搜索,匹配从目标字符串的当前位置开始的字符串

元字符

正则表达式中有许多特殊字符,它们被称为“元字符”,用来构建模式。以下是一些常用的元字符:

  • ^:匹配输入的开始位置
  • $:匹配输入的结束位置
  • .:匹配除换行符(\n、\r)之外的任意单个字符
  • []:定义一个字符集合
  • [^]:定义除了这个字符集合之外的任意单个字符
  • ?:匹配前面的字符零次或一次(非贪婪)
  • *:匹配前面的字符零次或多次(贪婪)
  • +:匹配前面的字符一次或多次(贪婪)
  • {n}:匹配前面的字符n次
  • {n,m}:匹配前面的字符n到m次

正则表达式示例

下面是两个正则表达式示例,用来检查输入的字符串是否为有效邮箱和URL地址:

// 邮箱正则表达式
var emailPattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i;

// URL地址正则表达式
var urlPattern = /^(https?|ftp):\/\/[^\s/$.?#][^\s]*$/i;

// 检测邮箱地址
if (emailPattern.test('example@example.com')) {
  console.log('合法的邮箱地址');
}

// 检测URL地址
if (urlPattern.test('http://www.example.com')) {
  console.log('合法的URL地址');
}

以上代码中,emailPatternurlPattern分别是邮箱地址和URL地址的正则表达式,test()方法用来检测输入的字符串是否匹配这个正则表达式,如果匹配,则返回true,否则返回false

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript高级程序设计(第3版)学习笔记12 js正则表达式 - Python技术站

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

相关文章

  • Mybatis常用分页插件实现快速分页处理技巧

    Mybatis常用分页插件实现快速分页处理技巧 背景 在使用Mybatis作为应用程序的ORM框架时,我们通常需要实现对数据库表的快速分页查询。而Mybatis常用的分页插件可以帮助我们快速实现这个功能。 准备工作 在使用分页插件之前,我们需要先将其引入到项目中,并在Mybatis的配置文件中进行配置。 引入分页插件 在Maven项目中,我们可以在pom.x…

    JavaScript 2023年6月10日
    00
  • javascript实现一个网页加载进度loading

    下面是关于Javascript实现一个网页加载进度loading的完整攻略。 步骤一:添加HTML结构 首先,在网页的HTML结构中添加loading元素,用于显示进度条和加载状态。可以采用下面代码模板: <div id="loading"> <div id="progress"></di…

    JavaScript 2023年6月11日
    00
  • JavaScript前端超时异步操作完美解决过程

    JavaScript前端超时异步操作完美解决需要使用到Promise和async/await两种技术,下面我会分几个步骤来详细讲解: 第一步:了解问题 前端异步请求是常见的操作,但遇到超时问题需要进行特殊处理。通常情况下采用回调函数或者Promise来解决超时问题,但是它们都存在一些缺点,例如回调函数可能会导致回调地狱,而Promise虽然避免了回调地狱的问…

    JavaScript 2023年5月18日
    00
  • javascript知识点收藏

    JavaScript知识点收藏攻略 概述 本文将介绍JavaScript自学中需要重点掌握的知识点,并提供收藏的资源、工具和学习方法。 知识点 以下是自学JavaScript过程中需要重点掌握的知识点:- 变量、数据类型与运算符- 流程控制语句(if/else、switch/case、循环)- 函数与对象的概念、创建与使用- 常见数据结构(如数组、栈、队列、…

    JavaScript 2023年5月18日
    00
  • 纯JAVASCRIPT图表动画插件Highcharts Examples

    下面是“纯JAVASCRIPT图表动画插件Highcharts Examples”完整攻略: 1. Highcharts介绍 Highcharts是一个纯JavaScript编写的图表库,提供了很多基础的图表类型及其组合,包括线图、柱状图、散点图、区域图、饼图、环形图等,并且支持动态数据加载,动画效果等,同时还有非常详细的文档及示例。 2. Highchar…

    JavaScript 2023年6月10日
    00
  • 如何通过JS实现日历简单算法

    下面我将详细讲解如何通过JS实现日历简单算法的完整攻略。 实现思路 通过JS实现日历算法的基础思路是计算出每个月份的天数,以及每个月份的第一天是星期几,然后将这些信息展示到日历中。 代码实现 以下是通过JS实现日历算法的完整代码示例: function getDaysInMonth(year, month) { return new Date(year, m…

    JavaScript 2023年5月27日
    00
  • 无语,javascript居然支持中文(unicode)编程!

    当我看到 “无语,JavaScript居然支持中文(Unicode)编程!” 这句话时,我相信说的是JavaScript支持使用Unicode字符作为标识符。这意味着您可以在JavaScript编程时使用中文或其他unicode字符,这对特定项目或程序员可能很有用。 下面是使用JavaScript中文(Unicode)标识符的完整攻略。 使用Unicode字…

    JavaScript 2023年5月19日
    00
  • JS数组方法shift()、unshift()用法实例分析

    JS数组方法shift()和unshift()是数组操作中非常常用的方法,两个方法都可以用于向数组的开头添加或删除元素,下面详细讲解这两个方法的用法及实例分析。 shift() 方法的用法及实例分析 shift()方法用于删除数组的第一个元素,并返回被删除的元素。 语法: array.shift() 参数说明: shift()方法不需要任何参数。 返回值: …

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