js之正则对象

正则表达式也是js的内置对象,全称是regular express(正则表达式)

创建正则表达式对象的两种方式

  • 构造函数方式=>let reg = new RegExp('正则表达式','匹配模式')
  • 字面量创建=>let reg=/'正则表达式'/'匹配模式'

两种不同的方式区别

  • 使用构造函数传入第一个参数时,会将传入的字符串进行转义操作,new RegExp('\w')===/w/,而直接用字面量的形式得到就是reg=/\w/得到的是/\w/,大家输入的都是反斜杠()

正则中使用反斜杠作为转义字符

let reg =/\./ 表示检测含有小数点的字符
reg .test('a.b')//true
reg .test('a')//false

用正则表达是检测一个字符串是否符合

let reg='a';
let result = reg.test('a')//true
let result = reg.test('b')//false
let result = reg.test('anc')//true
结论:用来检查一个字符串中是否有a字母,有就是true,无所谓位置;
let reg=/ab/
reg.test('abc')//true
reg.test('acc')//false
reg.test('acb')//false
结论:此处还要求位置一致
检查是否存在a或者b,
1. 用**竖线(|)**表示**或**
2. **中括号[]**也表示**或**
let reg =/a|b/
reg.test('acd')//true
reg.test('cccc')//false

let reg =/[abcdefg]/  表示abcdefg中任意一个含有就为true
reg.test(6)//false 
reg.test('k')//false 
reg.test('ck')//true
reg.test('ckd')//true
中括号[]里面写a-z表示a到z的任意**小写**字符存在就为true
reg.test('ckd')//true
reg.test('cks')//true
reg.test('ckA')//true
reg.test('A')//false
[A-Z] 表示任意的大写字母
[a-zA-Z]或者[A-Za-z] 表示任意的字母,不区分大小写
[0-9]表示任意0-9数字
[a-zA-Z0-9] 组合写法,表示任意字母或者数字
[^]表示除了某某,
let reg=/[^a-z]/;找有没有除了小写a-z以外的字母
reg.test('a');//false 
reg.test('A');//true
reg.test('aA');//true
. 表示除了换行符以外的任意字符
let reg =/./
reg.test('a')//true
reg.test('true')//true
reg.test('A')//true
reg.test('/n')//true
reg.test('\n')//false

匹配模式

  • 写个i表示或略大小写,例如reg=/[a-z]/i等于reg=/[a-zA-Z]或者[A-Za-z]/

其他字符集

mdn

let reg = /^a/  表示匹配开始位置的a,reg.test('ac')//true
let reg = /a$/  表示匹配结束位置的a,reg.test('ac')//false reg.test('ca')//true
let reg = /^a&/  表示只匹配字母a,完全匹配,要求字符串必须和正则完全一致,
reg.test('ca')//false reg.test('a')//true
let reg = /^abc&/ 表示检查字符串是不是abc,多或者少都不行

量词

let reg=/a{m}/

  1. {m}表示匹配m个a;
  2. {m,}至少m个
  3. {m,n}m到n个
    • 表示一个及以上,相当于
    • 任意数量的
  4. ? 表示0-1次,相当于
let reg=/a{3}/;
reg.test('aaaa')//true
let re2g=/^a{3}$/;
re2g.test('aaaa')//false
let reg= /^ba+$/
let reg= /^ba*$/
let reg= /^ba?$/

reg.exce()方法

  • 获取字符串中符合正则表达式的内容
let str='abcaecafcacc'
//提取str中符合axc格式的内容,g表示全局匹配
let re=/a[a-z]c/ig
let res=re.exec(str)
res返回值为一个数组,一次执行只返回一个 ,想一次全局整完咋整?遍历!
```js
while(res){
console.log(res[0])
res=re.exec(str)
}



posted @ 2023-03-17 21:31  古德拉克  阅读(69)  评论(0编辑  收藏  举报