(創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動力,如果看完對你有幫助,請留下您的足跡)
目錄
介紹
語法?
元字符?
邊界符?
量詞?
字符類:
修飾符
介紹
正則表達(dá)式(Regular Expression)是用于匹配字符串中字符組合的模式。在 JavaScript中,正則表達(dá)式也是對象,通常用來查找、替換那些符合正則表達(dá)式的文本
正則表達(dá)式在 JavaScript中的使用場景:例如驗證表單:用戶名表單只能輸入英文字母、數(shù)字或者下劃線, 昵稱輸入框中可以輸入中文( 匹配 )? ??比如用戶名: /^[a-z0-9_-]{3,16}$/
過濾掉頁面內(nèi)容中的一些敏感詞( 替換 ),或從字符串中獲取我們想要的特定部分( 提取 )等?
語法?
1. 定義正則表達(dá)式語法:
其中 / / 是正則表達(dá)式字面量
比如:
2.判斷是否有符合規(guī)則的字符串:?
test() 方法 用來查看正則表達(dá)式與指定的字符串是否匹配語法:
比如:console.log(/哈/.test('哈')) // true console.log(/哈/.test('哈哈')) // true console.log(/哈/.test('二哈')) // true
如果正則表達(dá)式與指定的字符串匹配 ,返回true,否則false
3.檢索(查找)符合規(guī)則的字符串:
exec() 方法 在一個指定字符串中執(zhí)行一個搜索匹配語法:
比如:
如果匹配成功,exec() 方法返回一個數(shù)組,否則返回null
元字符?
普通字符:大多數(shù)的字符僅能夠描述它們本身,這些字符稱作普通字符,例如所有的字母和數(shù)字。也就是說普通字符只能夠匹配字符串中與它們相同的字符。元字符(特殊字符)是一些具有特殊含義的字符,可以極大提高了靈活性和強(qiáng)大的匹配功能。比如,規(guī)定用戶只能輸入英文26個英文字母,普通字符的話 abcdefghijklm…..但是換成元字符寫法: [a-z]
為了方便記憶和學(xué)習(xí),我們對眾多的元字符進(jìn)行了分類:??????? ?邊界符(表示位置,開頭和結(jié)尾,必須用什么開頭,用什么結(jié)尾)????????量詞 (表示重復(fù)次數(shù))????????字符類 (比如 \d 表示 0~9)
邊界符?
正則表達(dá)式中的邊界符(位置符)用來 提示字符所處的位置 ,主要有兩個字符![]()
如果 ^ 和 $ 在一起,表示必須是精確匹配。?
console.log(/^哈/.test('哈')) // true
console.log(/^哈/.test('哈哈')) // true
console.log(/^哈/.test('二哈')) // flase
console.log(/^哈$/.test('哈')) // true 只有這種情況為true 否則全是false
console.log(/^哈$/.test('哈哈')) // false
console.log(/^哈$/.test('二哈')) // false
量詞?
量詞用來 設(shè)定某個模式出現(xiàn)的次數(shù)?![]()
注意: 逗號左右兩側(cè)千萬不要出現(xiàn)空格
// 量詞 * 類似 >=0 次
console.log(/^哈$/.test('哈')) // true
console.log(/^哈*$/.test('')) // true
console.log(/^哈*$/.test('哈')) // true
console.log(/^哈*$/.test('哈哈')) // true
console.log(/^哈*$/.test('二哈很傻')) // false
console.log(/^哈*$/.test('哈很傻')) // false
console.log(/^哈*$/.test('哈很哈')) // false
console.log('------------------')
// 量詞 + 類似 >=1 次
console.log(/^哈$/.test('哈')) // true
console.log(/^哈+$/.test('')) // false
console.log(/^哈+$/.test('哈')) // true
console.log(/^哈+$/.test('哈哈')) // true
console.log(/^哈+$/.test('二哈很傻')) // false
console.log(/^哈+$/.test('哈很傻')) // false
console.log(/^哈+$/.test('哈很哈')) // false
console.log('------------------')
// 量詞 ? 類似 0 || 1
console.log(/^哈?$/.test('')) // true
console.log(/^哈?$/.test('哈')) // true
console.log(/^哈?$/.test('哈哈')) // true
console.log(/^哈?$/.test('二哈很傻')) // false
console.log(/^哈?$/.test('哈很傻')) // false
console.log(/^哈?$/.test('哈很哈')) // false
// 量詞 {n} 寫幾,就必須出現(xiàn)幾次
console.log(/^哈{4}$/.test('哈')) // false
console.log(/^哈{4}$/.test('哈哈')) // false
console.log(/^哈{4}$/.test('哈哈哈')) // false
console.log(/^哈{4}$/.test('哈哈哈哈'))// true
console.log(/^哈{4}$/.test('哈哈哈哈哈')) // false
console.log(/^哈{4}$/.test('哈哈哈哈哈哈')) // false
console.log('------------------')
// 量詞 {n,} >=n
console.log(/^哈{4,}$/.test('哈'))// false
console.log(/^哈{4,}$/.test('哈哈'))// false
console.log(/^哈{4,}$/.test('哈哈哈'))// false
console.log(/^哈{4,}$/.test('哈哈哈哈'))// true
console.log(/^哈{4,}$/.test('哈哈哈哈哈'))// true
console.log(/^哈{4,}$/.test('哈哈哈哈哈哈'))// true
console.log('------------------')
字符類:
[ ] 匹配字符集合后面的字符串只要包含 abc 中任意 一個字符 ,都返回 true 。
// 字符類 [abc] 只選1個
console.log(/^[abc]$/.test('a')) // true
console.log(/^[abc]$/.test('b')) // true
console.log(/^[abc]$/.test('c')) // true
console.log(/^[abc]$/.test('ab')) // false
console.log(/^[abc]{2}$/.test('ab')) // true
使用連字符 - 表示一個范圍
比如:???? [a-z] 表示 a 到 z 26個英文字母都可以???? [a-zA-Z] 表示大小寫都可以???? [0-9] 表示 0~9 的數(shù)字都可以認(rèn)識下:![]()
// 字符類 [a-z] 只選1個
console.log(/^[A-Z]$/.test('p')) // false
console.log(/^[A-Z]$/.test('P')) // true
console.log(/^[0-9]$/.test(2)) // true
console.log(/^[a-zA-Z0-9]$/.test(2)) // true
console.log(/^[a-zA-Z0-9]$/.test('p')) // true
console.log(/^[a-zA-Z0-9]$/.test('P')) // true
[ ] 里面加上 ^ 取反符號比如:???? [^a-z] 匹配除了小寫字母以外的字符???? 注意要寫到中括號里面
. 匹配除換行符之外的任何單個字符
預(yù)定義:指的是 某些常見模式的簡寫方式。
修飾符
修飾符約束正則執(zhí)行的某些細(xì)節(jié)行為,如是否區(qū)分大小寫、是否支持多行匹配等
語法:
? i 是單詞 ignore 的縮寫,正則匹配時字母不區(qū)分大小寫? g 是單詞 global 的縮寫,匹配所有滿足正則表達(dá)式的結(jié)果
替換 replace
語法:文章來源:http://www.zghlxwxcb.cn/news/detail-637999.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-637999.html
const str = 'java是一門編程語言, 學(xué)完JAVA工資很高'
const re = str.replace(/java/ig, '前端')
console.log(re) // 前端是一門編程語言, 學(xué)完前端工資很高
到了這里,關(guān)于前端JavaScript入門-day08-正則表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!