摘要:分組小括號功能較多有三種功能,作用一,把多帶帶的項組合成子表達式。作用三,允許后面引用前面的表達式。如果這時的正則表達式是一個非全局的,那么和正則表達式方法拿到的結果相同。,也可以接受一個正則表達式作為參數。
正則表達式創建
字面量創建,a = /abc/gim;
構造函數創建,a = new RegExp("abc","gim")
正則表達式中的特殊字符,
[...] 方括號中的任意字符
[^...] 非方括號中的任意字符
s 空白字符
S 非空白字符
d 數字
D 非數字
w 字母和數字,相當于[a-zA-Z0-9]
W 非字母和數字
重復
{m,n} 介于m到n次之間
{m} 恰好等于m次
{m,} 大于等于m次
? 0次或者1次
* 0次或者n次
+ 1次或者n次
貪婪的匹配
重復的一種,貪婪的匹配即普通的書寫方式,盡可能多的匹配;非貪婪的匹配就是盡可能少的匹配,在重復的表示符號后面加上?,例如/a?/,字符串為aaaa,將會匹配第一個a。需要注意的是,/a?b/來匹配aaaab得到的匹配結果是aaaab,而不是ab。
選擇
選擇通過‘|’來實現,用于分隔供選擇的字符。匹配的次序是從左到右,如果左邊已經匹配了,就不考慮右邊的匹配項了。當然,然后是全局匹配的話可以找出所有的匹配項。
分組
小括號功能較多有三種功能,
1.作用一,把多帶帶的項組合成子表達式。將一段字符串組成子表達式,例如/java(script)?/就可以用來匹配Java以及JavaScript。
2.作用二,定義子模式,在調用exec方法的時候,返回值的數組第二項開始就是子模式的匹配結果了。
3.作用三,允許后面引用前面的表達式。例如,1引用的是第一個圓括號對應的表達式,2引用的是第二個圓括號對應的表達式。例如要匹配字符串中的子字符串,子字符串的引號應該相同,同為單引號或者同為雙引號。在不借助引用的情況下只能這么寫,/[""]S[""]/。這樣做不到同為單引號或者雙引號,可以改為/[""]11/
指明位置
^x 以x為開始
x$ 以x結束
/bjava/ 匹配Java
/Bjava/ 匹配ajava,不匹配Java,因為B表示單詞不在這里斷
(?=p) 零寬正向斷言,后面必須有p,但是不匹配p;這里說的不匹配p意思是通過match函數的返回數組中不包含p,即這里的p只是作為一個條件。例如 /java(?=:)/,它不匹配JavaScript,匹配JavaScript:。
(?!p) 零寬負向斷言,后面必須沒有p,同時不匹配p。例如/java(?!:)/,它匹配JavaScript,它不匹配JavaScript:。
修飾符
i 忽略大小寫
g 全局多次匹配
m 多行匹配
寫法實例:/[abc]/gim可以匹配a、b、c、A、B、C。如果字符串有多個,所有的匹配項都可以匹配出來。
/abc$/g,這個表達式至多能匹配出一個匹配項
/abc$/gm,這個表達式可以匹配出多個匹配項,將每次換行都看作是一次結束
正則表達式的方法
這里說的方法,即包括字符串和正則表達式相關的方法,也包括正則表達式自身的方法
字符串的四個方法,
String.search() 查找第一個匹配項的索引
Sring.replace() 第一個參數是正則表達式,如果正則表達式是全局那么將替換掉所有的匹配項
String.match() 得到所有的放回項數組。如果這時的正則表達式是一個非全局的,那么和正則表達式exec()方法拿到的結果相同。
String.split(),也可以接受一個正則表達式作為參數。
regexp有兩個方法,分別是exec和test。exec的返回值是一個數組,test的方式值時一個布爾類型。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99013.html
摘要:說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 實例化正則對...
摘要:第二階段該部分內容是學習正則的第二篇內容,點擊第一部分查看第一部分的內容。 第二階段 該部分內容是學習正則的第二篇內容,點擊第一部分查看第一部分的內容。 這部分學習的內容包括: 分組 斷言 匹配模式(貪婪和懶惰) 分組 我們可以通過量詞匹配一個字符多次,但是如果我們想要匹配多個字符多次,就需要用到分組,比如下面一個例子 // 匹配字母和數字連續出現三次的字符 let str = a...
摘要:正則表達式作為前端學習的一個知識點,是每個合格的前端開發都應該掌握它的用法。元字符一般情況下,正則表達式的一個字符對應字符串的一個字符。 正則表達式作為前端學習的一個知識點,是每個合格的前端開發都應該掌握它的用法。正則表達式的學習確實不難,語法和應用也非常簡單,能夠快速入門,很輕松的就能寫出簡單的表達式來對字符串執行某些操作。網上也有標題黨說一杯咖啡的時間就能學會。能學會嗎?能!但要真...
閱讀 2508·2023-04-25 19:31
閱讀 2244·2021-11-04 16:11
閱讀 2811·2021-10-08 10:05
閱讀 1520·2021-09-30 09:48
閱讀 2319·2019-08-30 15:56
閱讀 2414·2019-08-30 15:56
閱讀 2177·2019-08-30 15:53
閱讀 2272·2019-08-30 15:44