2025年正则表达式——匹配

正则表达式——匹配目录 一 正则表达式简介 二 正则表达式的使用 三 正则的一些语法 1 字符类 2 反向类 3 匹配起始位置 4 或者操作符 四 范围类与组合类与预定义类 1 范围类 2 组合类 3 预定义类 五 边界 1 匹配起始位置 2 匹配结束位置 3 严格匹配 六 量词 1 指定个数 n 2

大家好,我是讯享网,很高兴认识大家。

目录

一 正则表达式简介 

二 正则表达式的使用

三 正则的一些语法

1 字符类

2 反向类

3 匹配起始位置 

4 或者操作符

四 范围类与组合类与预定义类

1 范围类

2 组合类

3 预定义类

五 边界

1 匹配起始位置

2 匹配结束位置

3 严格匹配

六 量词

1 指定个数  {n}

2 指定至少几个  {n,}

3 出现n-m个  {n,m}

4 预定义量词

正则表达式的匹配模式设置

正则表达式——匹配、提取、替换


一 正则表达式简介 

1 正则表达式的作用:

    用于对字符串进行操作

2 正则的功能(都是对字符串进行的操作):

   匹配  替换  提取

二 正则表达式的使用

1 创建方式

const reg = new RegExp("abc"); // 或 const reg = /abc/;

讯享网

2 简单类的使用

讯享网// 可以匹配含有内部字符abc(连续的)的字符串 const reg = /abc/

3 匹配方法

语法结构:   正则对象.test(字符串);


讯享网

返回值:    匹配成功返回true,否则返回false

console.log(reg.test("tcytbhjkdtrchb")) // false console.log(reg.test("tcytbhjabckdtrchb")) // true console.log(reg.test("abzzckdtrchb")) // false

三 正则的一些语法

1 字符类

标识方式,在正则内部书写一个[ ]

[ ]整体表示一位字符,这一位字符可以是[]内部的任意一个

讯享网const reg = /[abc]/; console.log(reg.test("zzazz")); // true console.log(reg.test("zzbzz")); // true console.log(reg.test("zzczz")); // true console.log(reg.test("zzzzz")); // false

2 反向类

反向类是对字符类功能的扩展

标识方式,在字符类的[ ]的后面写一个 ^

作用:标识除内部字符外的其他字符可以匹配成功

const reg = /[^abc]/; console.log(reg.test("zzazzz")); // true console.log(reg.test("abcbac")); // false console.log(reg.test("12333")); // true

3 匹配起始位置 

标识方式:在正则最开始书写一个 ^

作用:标识只有包含内部字符才可以匹配成功

4 或者操作符

正则/a|b|c/; 与 /[abc]/; 功能相同

注意与字符类的区别:

1 如果是多种单个字符的匹配,使用字符类

2 如果是多种多个字符的匹配,使用或者操作符

四 范围类与组合类与预定义类

1 范围类

讯享网// 小写字母 c至m const reg = /[c-m]/;

2 组合类

同时设置多种类型

const reg = /[0-9a-gH-M]/; //所有大小写字母与数字 /[0-9a-zA-Z]/;

3 预定义类

转义符 \

讯享网document.write("<pre><div>哈哈\n哈哈</div></pre>");

数字字符 \d 或 [0-9]

console.log(/\d/.test("1")); // true console.log(/\d/.test("abc")); // false

非数字字符 \D 或 [^0-9]

讯享网console.log(/\D/.test("1")); // false console.log(/\D/.test("abc123")); // true

单词字符 \w 或 [a-zA-Z0-9_]

console.log(/\w/.test("dfghjk")); // true console.log(/\w/.test("")) // true console.log(/\w/.test("ADWDAW")) // true console.log(/\w/.test("_")) // true console.log(/\w/.test("+-*!/%&|(")); // false console.log(/\w/.test("+-*!/%&|(_")); // true

非单词字符 \W 或  [^a-zA-Z0-9_]

讯享网console.log(/\w/.test("dfghjk")); // false console.log(/\w/.test("")) // false console.log(/\w/.test("ADWDAW")) // false console.log(/\w/.test("_")) // false console.log(/\w/.test("+-*!/%&|(")); // true console.log(/\w/.test("+-*!/%&|(_")); // true

不可见字符 (通常用于匹配空格换行等内容) \s 或 [\f\t\n\r等]

console.log(/\s/.test("fydguajida")); // false console.log(/\s/.test("fydgu ajida")); // true console.log(/[ ]/.test(" ")); // true 【匹配空格】

可见字符 \S 或 [^\f\t\n\r等]

讯享网console.log(/\S/.test("fydguajida")); // true console.log(/\S/.test(" ")); // false 

可见字符 . 或 [^\r\n] (除回车\r  与换行\n以外的其他字符 (在现代计算机中\r和\n和\r\n是相同的))

console.log(/./.test("fydguajida")); // true console.log(/./.test(" ")); // true console.log(/./.test("\n")); // false

注意: \S 与 .都用于匹配任意的可见字符,点的匹配范围比\S大,通常使用.

五 边界

1 匹配起始位置

标识方式:在正则最开始书写一个^

讯享网const reg = /^abc/; console.log(reg.test("abcgygyu")); // true console.log(reg.test("zzzabcgygyu")); // false

2 匹配结束位置

标识方式:在正则的最后书写一个$

const reg = /abc$/; console.log(reg.test("gygyuabc")); // true console.log(reg.test("zzzabcgygyu")); //false

3 严格匹配

必须与设置的匹配字符内容完全一致。

设置方式:同时使用^$

讯享网const reg = /^abc$/; console.log(reg.test("abc")); // true console.log(reg.test("abc1")); // false console.log(reg.test("1abc")); // false console.log(reg.test("abcabc")); // false

六 量词

1 指定个数  {n}

const reg = /^a{4}$/; console.log(reg.test("aaa")); // false console.log(reg.test("aaaa")); // true console.log(reg.test("aaaaa")); // false

2 指定至少几个  {n,}

讯享网const reg = /^a{4,}$/; console.log(reg.test("aaa")); // false console.log(reg.test("aaaa")); // true console.log(reg.test("aaaaa")); // true console.log(reg.test("aaaaaaaaa")); // true

3 出现n-m个  {n,m}

const reg = /^a{4,6}$/; console.log(reg.test("aaa")); // false console.log(reg.test("aaaa")); // true console.log(reg.test("aaaaa")); // true console.log(reg.test("aaaaaa")); // true console.log(reg.test("aaaaaaaaa")); // false

4 预定义量词

出不出现均可匹配成功 * 或 {0,}

讯享网const reg = /^a*$/; console.log(reg.test("")); // true console.log(reg.test("a")); // true console.log(reg.test("aaaa")); // true console.log(reg.test("aaaaaa")); // true console.log(reg.test("aaaaaaaaaa")); // true

至少出现1次 +  {1,}

const reg = /^a+$/; console.log(reg.test("")); // false console.log(reg.test("a")); // true console.log(reg.test("aaaa")); // true console.log(reg.test("aaaaaa")); // true console.log(reg.test("aaaaaaaaaaaaaaaaaaa")); // true

出现0次或1次 ? 或 {0,1}

讯享网const reg = /^a?$/; console.log(reg.test("")); // true console.log(reg.test("a")); // true console.log(reg.test("aaaa")); // false console.log(reg.test("aaaaaa")); // false console.log(reg.test("aaaaaaaaaaaaaaaaaaa")); // false

正则表达式的匹配模式设置

g - 全局匹配模式 - 匹配到所有满足条件的子字符串

i - 忽略大小写

正则表达式——匹配、提取、替换

加油!加油!🆙 🆙

小讯
上一篇 2025-01-06 08:13
下一篇 2025-02-27 10:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/123160.html