正则表达式

RegExp - 正则表达式(Regular Expression)复杂数据类型 object

作用:专门用来验证字符串是否符合规则;

从字符串里面获取一部分符合规则的内容

语法:使用一些特定的符号,来组成一个表达式

使用这个表达式去验证字符串,或者获取一些内容

创建

1.字面量形式创建

var reg = /abcd/i  // 写在两个//中间 验证字符串内要包含'abcd'字母d段 不区分大小写

2.内置构造函数创建

var res = new RegExp('abcd','i')  //验证字符串内要包含'abcd'字母d段 不区分大小写

 

方法

1.匹配

验证字符串是否符合规则

语法:正则.test(要检测的字符串)

返回:一个布尔值,true / false

2.捕获

获取字符串中符合正则规则的一部分片段

语法:正则.exec(要捕获的字符串)

返回:1.没有找到,返回null

2.返回数组

3.字符串的正则表达式方法

match() 匹配

replace() 查找并替换,返回替换后的新字符串

search() 查找并返回,返回匹配的字符串的其实位置,找不到则返回-1

split() 根据指定字符串拆分,返回拆分后的数组,否则返回原字符串

 

元字符--基础

  1. \s 表示一个空白字符串 空格,回车,制表

  2. \S 表示一个非空白字符串

  3. \t 表示一个制表符(tab) ,不是空格,一定要是tab

  4. \d 表示一个数字

  5. \D 表示一个非数字

  6. \w 表示包含一个数字或者字母或者下划线

  7. \W 表示包含一个(数字,字母,下划线)以外的字符 非数字字母下划线

  8. 点(.) 非换行符以外的任意单个字符, 看字符,一个中文字也匹配

  9. 斜线(\)表示转义符 把没有意义的内容转换成有意义的内容;把有意义的内容换成没有意义的内容

元字符--边界

1.^ 表示字符串开始

var reg = /^\d/; //表示字符串要以数字开头

2.$ 表示字符串结尾

var reg = /\d$/; //表示要以数字结尾
var reg = /^\d$/; //这表示开头接一个数字立刻结束,所以只能有一个数字
//一个符号只表示一个字符

元字符--限定

写在普通元字符或者字母符号的后面

修饰前面一个符号出现的次数

1.* 表示字符串中某字符需要出现 0 ~ 多个

var reg = /\d*/;//表示字符串里要出现0-多个数字
console.log(reg.test("abcd1abcd111"));//true
var reg2 = /^\d*$/;//表示以数字开头,有多个数字,立刻以数字结尾
console.log(reg2.test("123456"));//true
console.log(reg2.test("123adc123"));//false

2.+ 表示字符串中某字符需出现 1 ~ 多次

var reg = /\d+/;
console.log(reg.test("abcds")); //false
console.log(reg.test("abc1"));//true

3.? 表示字符串中某字符出现 0 ~ 1次

var reg = /^\d?$/;
console.log(reg.test("12"));//false

4.{n} 表示出现n次

var reg = /^\d{3}$/;//表示只能由3个数字组成

5.{n,} 表示出现n到多次

var reg = /^\d{2,}$/;//表示只能由两到多个数字组成

6.{n,m} 表示只能出现n ~m次

var reg = /^\d{2,4}$/;//表示只能由2-4个数字组成

7.[]表示里面的任意一个元素

var reg = /[abc]/; //表示匹配a,b,c任意一个即可

 

模式匹配

| 代表,匹配其中一种字符串

var reg = /good|baidu|bing/; //表示字符串只要存在三个字符串其中一个即可

() 分组匹配 将内容进行分组,可以作为一个整体进行多次匹配

var reg = /(good){2,4}/; //匹配分组中的字符串"good"出现2-4次

(.*)获取n...m之间的任意字符

var reg = /n(.*)m/;

g 全局匹配

i 忽略大小写

m 换行模式 换行后重新匹配

 

posted @   啊呀阿鱼呀  阅读(8)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示