js之正則對象
正則表達式也是js的內(nèi)置對象,全稱是regular express(正則表達式)
創(chuàng)建正則表達式對象的兩種方式
- 構(gòu)造函數(shù)方式=>
let reg = new RegExp('正則表達式','匹配模式') - 字面量創(chuàng)建=>
let reg=/'正則表達式'/'匹配模式'
兩種不同的方式區(qū)別
- 使用構(gòu)造函數(shù)傳入第一個參數(shù)時,會將傳入的字符串進行轉(zhuǎn)義操作,new RegExp('\w')===/w/,而直接用字面量的形式得到就是reg=/\w/得到的是
/\w/,大家輸入的都是反斜杠()
正則中使用反斜杠作為轉(zhuǎn)義字符
let reg =/\./ 表示檢測含有小數(shù)點的字符
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
結(jié)論:用來檢查一個字符串中是否有a字母,有就是true,無所謂位置;
let reg=/ab/
reg.test('abc')//true
reg.test('acc')//false
reg.test('acb')//false
結(jié)論:此處還要求位置一致
檢查是否存在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] 表示任意的字母,不區(qū)分大小寫
[0-9]表示任意0-9數(shù)字
[a-zA-Z0-9] 組合寫法,表示任意字母或者數(shù)字
[^]表示除了某某,
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]/
其他字符集
let reg = /^a/ 表示匹配開始位置的a,reg.test('ac')//true
let reg = /a$/ 表示匹配結(jié)束位置的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}/
- {m}表示匹配m個a;
- {m,}至少m個
- {m,n}m到n個
-
- 表示一個及以上,相當(dāng)于
-
- 任意數(shù)量的
- ? 表示0-1次,相當(dāng)于
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()方法
- 獲取字符串中符合正則表達式的內(nèi)容
let str='abcaecafcacc'
//提取str中符合axc格式的內(nèi)容,g表示全局匹配
let re=/a[a-z]c/ig
let res=re.exec(str)
res返回值為一個數(shù)組,一次執(zhí)行只返回一個 ,想一次全局整完咋整?遍歷!
```js
while(res){
console.log(res[0])
res=re.exec(str)
}





浙公網(wǎng)安備 33010602011771號