JS基础系列之正则表达式

JS基础系列之正则表达式

正则表达式(Regular Expression)是一个描述字符模式的对象。一般用于字符串的匹配、查找、替换等。JavaScript 通过内置对象 RegExp 提供对正则表达式的支持。本文将提供一些正则表达式的基础知识和用法,让你轻松入门。

创建正则表达式

正则表达式可以采用字面量形式或者使用 RegExp 构造函数创建。其中字符字面量必须在 / 之间,并且是对正则表达式字面量(而不是其他种类的字面量)的一种特殊支持。下面的例子说明了两种创建正则表达式的方法:

// 字面量形式
const pattern1 = /test/i; // 匹配test(不区分大小写)
// 构造函数
const pattern2 = new RegExp("test", "i"); // 匹配test(不区分大小写)

正则表达式的修饰符

正则表达式可以通过修饰符来改变其行为。下面列举了常见的几个修饰符:

  • i(忽略大小写):忽略字符串中的大小写。例如 /test/i 可以匹配 test、Test 或 TEST。
  • g(全局匹配):查找所有匹配,而不是在找到第一个匹配后停止。例如 /test/g 可以匹配 testtest。

正则表达式的模式

正则表达式的模式是一组包含在两个斜杠中间的字符。下面是一些基本模式:

  • .(点):匹配除了换行符之外的任何单个字符。
  • \d(数字):匹配任何数字。
  • \w(字母数字字符):匹配任何字母数字字符。
  • *(星号):匹配前面出现的字符零次或多次。
  • +(加号):匹配前面出现的字符一次或多次。
  • ?(问号):匹配前面出现的字符零次或一次。

下面是一些示例:

const str = "Hello, this is a test string.";
const pattern1 = /test/;
const pattern2 = /[aeiouAEIOU]/g;

// 匹配字符串中的 test
console.log(str.match(pattern1)); 
// 匹配字符串中的所有元音字母
console.log(str.match(pattern2));

输出结果为:

["test", index: 18, input: "Hello, this is a test string.", groups: undefined]
["e", "i", "i", "a", "e", "i"]

正则表达式的执行方法

当使用正则表达式时,可以使用内置方法来执行一些操作。下面是一些内置方法:

  • exec(string):这个方法在一个特定的字符串中执行一个搜索匹配,并返回包含该搜索结果的数组。但是,如果没有找到匹配,则该方法返回 null。
  • test(string):这个方法返回布尔值,表示是否在字符串中找到正则表达式的匹配。

下面是一些示例:

const str = "Hello, welcome to Javascript.";
const pattern1 = /welcome/;
const pattern2 = /goodbye/;

// 通过 test() 方法判断字符串中是否存在 "welcome"
console.log(pattern1.test(str)); // true

// 通过 exec() 方法找到字符串中 "welcome" 的位置
console.log(pattern1.exec(str)); // [welcome, index: 7, input: "Hello, welcome to Javascript.", groups: undefined]

// 通过 exec() 方法找到字符串中 "goodbye" 的位置
console.log(pattern2.exec(str)); // null

最后,对于初学者来说,正则表达式的语法可能比较晦涩,需要不断地学习和尝试。在学习正则表达式的过程中,可以多尝试一些实际应用场景,通过实践来加深记忆。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS基础系列之正则表达式 - Python技术站

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

相关文章

  • JS前端同源策略和跨域及防抖节流详解

    JS前端同源策略和跨域及防抖节流是JS前端开发中常见的一些概念和技术。下面将详细讲解这些内容。 JavaScript前端同源策略 同源策略是一种安全策略,用于限制一个源加载的文档或脚本与来自另一个源所加载文档或脚本交互的方式。这里的“源”是由协议,主机名和端口号标示的。同源策略的存在是为了保护用户隐私和安全。 具体来说,同源策略要求:如果两个页面的域名,协议…

    JavaScript 2023年6月11日
    00
  • 十代酷睿的性能差异 i9-10900K/i7-10700K/i5-10600K性能对比

    十代酷睿的性能差异 i9-10900K/i7-10700K/i5-10600K性能对比 随着十代酷睿处理器的推出,消费者可以选择 i9-10900K、i7-10700K、i5-10600K 等不同的处理器型号。这些处理器具有不同的性能和价格,本文将详细讲解它们之间的性能差异。 i9-10900K i9-10900K 是十代酷睿处理器中最高端的型号,采用了 L…

    JavaScript 2023年5月28日
    00
  • 详解JavaScript中的箭头函数的使用

    下面是详解JavaScript中的箭头函数的使用的完整攻略。 什么是箭头函数 箭头函数是ES6新增的函数声明方式,它使用箭头(=>)代替了传统函数的声明方式,可以简化代码的书写并且更加易读。 箭头函数的语法如下: // 无参箭头函数 () => {} // 有参箭头函数 (param1, param2) => {} // 带返回值的箭头函数…

    JavaScript 2023年5月27日
    00
  • 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)

    让我们一步步来实现在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div,不改变iframe父窗口代码。 首先,我们需要在iframe里的页面编写js,并且通过iframe的parent对象进行与父窗口的交互。以下是大致的步骤: 在iframe页面中编写HTML代码和JS代码,创建一个可以进行展开和收缩的div,并设置好div的初始状态…

    JavaScript 2023年6月11日
    00
  • JavaScript 函数语法详解

    JavaScript 函数语法详解 在JavaScript中,函数也被称为一等公民,因为它们可以像任何其他值(数字,字符串等)一样进行操作。函数可以接受参数和返回值,并且可以在任何位置声明或调用。下面是JavaScript函数的语法: function functionName(parameters) { // 函数体 return returnValue;…

    JavaScript 2023年5月18日
    00
  • 如何让每个Http请求都自动带上token

    要让每个HTTP请求都自动携带token,我们可以使用拦截器来实现。拦截器是一个可以在请求和响应之间进行干预的组件,我们可以在它的回调方法中加入我们需要的逻辑,比如带上token。下面是一个完整的攻略: 步骤一:添加拦截器 首先,我们要添加一个拦截器,代码如下: public class TokenInterceptor implements Interce…

    JavaScript 2023年6月11日
    00
  • JS获取并操作iframe中元素的方法

    JS获取并操作iframe中元素的方法可以分为以下几个步骤: 通过document.getElementById()获取iframe元素的引用。例如,若iframe元素的id为“myFrame”,则用下列代码获取它的引用: var myFrame = document.getElementById(‘myFrame’); 使用contentWindow属性获…

    JavaScript 2023年6月10日
    00
  • JavaScript实现字符串与日期的互相转换及日期的格式化

    JavaScript实现字符串与日期的互相转换及日期的格式化主要包含以下几个步骤: 将日期字符串转换为Date对象 将Date对象转换为字符串 对日期进行格式化 下面将详细阐述这些步骤: 将日期字符串转换为Date对象 可以使用Date.parse()方法将日期字符串转换为Date对象。该方法接收一个日期字符串作为参数,返回相应的毫秒数。 示例代码: con…

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