Bootstrap

正则表达式——匹配

目录

一 正则表达式简介 

二 正则表达式的使用

三 正则的一些语法

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("123213213")) // 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("123213213")) // 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 - 忽略大小写

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

加油!加油!🆙 🆙

;