- 正則表達式介紹
- 語法
- 元字符
- 修飾符
一.正則表達式介紹
① 簡介
- 用來匹配字符串中字符組合的模式
- 在JavaScript中,正則表達式也是對象
- 通常用來查找,替換那些符合正則表達式的文本,許多語言都支持正則表達式
② 使用場景
- 驗證表單:用戶名表單只能輸入英文字母,數字或者下劃線
- 過濾掉頁面內容中的一些敏感詞,從字符串中獲取我們想要的特定部分
③ 定義正則表達式語法
- /? ?/? 是正則表達式字面量
const 變量名 = /表達式/
④ test()方法 用來查看正則表達式與指定的字符串是否匹配
- ?reg.test(被檢測的字符串)
- 如果正則表達式與指定的字符串匹配,返回true, 否則返回false
⑤ exec() 方法??在一個指定字符串中執行一個搜索匹配
- ? regObj.exec(被檢測的字符串)
- 如果匹配成功,exec() 方法返回一個數組,否則返回null
const str = '歡迎來到魔法世界'
const reg = /魔法/
console.log(reg.exec(str))
二.元字符
① 普通字符:大多數的字符僅能夠描述它們本身,這些字符稱作普通字符,例如所有的字母和數字,普通字符只能夠匹配字符串中與它們相同的字符
② 元字符(特殊字符):是一些具有特殊含義的字符,可以極大提高靈活性和強大的匹配功能
③ 參考文檔
?④ 分類
- 邊界符(表示位置,開頭和結尾,必須用什么開頭,用什么結尾), 用來提示字符所處的位置,主要有兩個字符??
console.log(/哈/.test('哈')) // 包含
console.log(/^哈/.test('哈')) // 以'哈'開頭
console.log(/^哈$/.test('哈')) // 精確匹配,必須一模一樣才能通過
- 量詞(表示重復次數)設定某個模式出現的次數
// 3.*匹配0次或者更多次console.log(/^哈*$/.test('哈哈'))
// 4. +重復1次或者更多次console.log(/^哈+$/.test('哈一哈哈'))
// 5. 0次或者1次console.log(/^哈?$/.test(''))// 6. {n} n寫幾就必須出現幾次console.log(/^哈{5}$/.test('哈哈哈'))
// 7.{n,} 大于等于n次console.log(/^哈{5,}$/.test('哈哈哈哈哈哈'))
// 8.{n,m} 大于等于n小于等于m 逗號左右不要有空格 console.log(/^哈{5,8}$/.test('哈哈哈哈哈'))
? ?
- 字符類(比如 \d表示 0~9)
? ? (1)[ ] 匹配字符集合:后面的字符串只要包含abc中任意一個字符,都返回true? ??
console.log(/[asbc]/.test('a'))
? ? (2)[a-z]: 使用連字符,表示一個范圍
? ? (3)[ ]里面加上?^ 取反符號
? ? ? (4) . 匹配除換行符之外的任何單個字符
? ? (5)預定義類
?三.修飾符
① 修飾符約束正則執行的某些細節行為,比如是否區分大小寫,是否支持多行匹配
② 語法:/表達式/修飾符
- i 是單詞ignore的縮寫,正則匹配時字母不區分大小寫
- g 是單詞global的縮寫,匹配所有滿足正則表達式的結果
③ 字符串.replace(/正則表達式/, '替換的文本')
console.log(/a/i.test('A'));
const str = 'java是一門最好的語言,hello java'
// g表示全局
const res = str.replace(/java/ig, 'Javascript')
console.log(res)
? ? ? ? ?