JavaScript正则表达式详解

正则表达式的概述

正则表达式(Regular Expression)是一个描述字符模式的对象,用于对字符串进行匹配, 一般用在有规律的字符串匹配中,常用于表单验证以及相关的字符串匹配。正则表达式是匹配模式,要么匹配字符,要么匹配位置。

正则对象的声明

1.使用字面量来声明(常用的)

var regx = /a/ //表示匹配a
//字符串支持正则的方法 replace split search match
var str = 'abcdef'
console.log(str.match(regx));
regx = /a/i
console.log('ABC'.match(regx));  

2.使用new关键词来声明

//使用new关键词 参数一是匹配的对应的正则表达式 参数二模式
//i表示不区分大小写  g表示全局搜索
var regx1 = new RegExp('a','i')
var str1 = 'ABC'
console.log(str1.match(regx1));

正则修饰符

g :表示全局匹配,即在目标字符串中按顺序找到满足匹配模式的所有子串,强调的是“所有”,而不只是“第一个”。g是单词global的首字母。

i :不区分大小写

m :换行模式

正则匹配的元字符

1.量词

{} 表示个数

var regx2 = /[a-z]{6}/ //表示6个小写的字母
regx2 = /[a-z]{0}/ //表示0个字母
regx2 = /[a-z]{1,3}/ //表示1个到3个
regx2 = /[a-z]{1,}/ //表示1个到无穷个

{n} 表示n个

{n,m} 表示n个到m个

{n,} 表示n个到无穷个

简写形式:

// + 表示一个到多个 {1,}
// * 表示0个到多个 {0,}
// ? 表示0个到一个 {0,1}

2.模糊匹配

  • [ ]  表示里面任意的一个元素:放置在里面的元字符不会被识别,而是当做普通字符
          譬如[abc],表示该字符是可以字符“a”、“b”、“c”中的任何一个。
          比如/a[123]b/可以匹配如下三种字符串:"a1b"、"a2b"、"a3b"
  • ^   表示开头

  • $   表示结尾

  • .   表示通配符,表示任意字符(包括中文字符)

  • \w  表示对应的字母数字下滑线 \W 就是相反的 不是字母数字下滑线

  • \d  表示数字 \D表示非数字

  • \s  表示空白字符串(回车 制表 空格) \S就是相反的 不是空白字符

  • \   转义 :匹配 ? * + . 等元字符要使用转义

     

//匹配 ? * + .等元字符 转义\
var regx10 = /^[?]$/
console.log('?'.match(regx10));
var regx10 = /^[*]$/
console.log('*'.match(regx10));
//用转义字符来
var regx10 = /^\*$/
console.log('*'.match(regx10));
var regx10 = /^\.$/
console.log('.'.match(regx10));

3.多选分支

​使用 | 来进行选择 找到组内对应的某一个就返回

要匹配"good"和"nice"可以使用/good|nice/

var regex = /good|nice/g;
var string = "good idea, nice try.";
console.log( string.match(regex) );  //["good","nice"]

4.分组

使用()来进行分组

var reg = /aaa/
var reg2 = /(a){3}/
//reg 和 reg2 效果相同

也可以将分组和选择共同使用

var reg = /I Like (basketball|football|table tennis)/
console.log(reg.test('I Like basketball')); //true
console.log(reg.test('I Like football')); //true
console.log(reg.test('I Like table tennis')); //true

正则的检测方法

test 测试 返回一个boolean类型值(是否匹配)

var regx = /\w/
console.log(regx.test('abc')) //true

exec 执行 返回给你一个对应的匹配的数组(如果有就返回一个数组)

var regx = /\d/
console.log(regx.exec('123')) //[1,2,3]

字符串支持正则的4个方法

  • split 切割

  • replace 替换

  • search 查找

  • macth 匹配

posted @ 2022-08-16 15:37  Lamb~  阅读(196)  评论(0编辑  收藏  举报