国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

學習JavaScript正則表達式

2024-05-06 16:25:05
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript正則表達式,詳細深入的了解JavaScript正則表達式,從而更熟練掌握JavaScript正則表達式,感興趣的小伙伴們可以參考一下

JavaScript正則表達式學習:

有個在線調試正則的工具。下面的所有示例代碼,都可以在codepen上查看到。

1.創建正則表達式

 

 
  1. var re = /ab+c/; //方式一 正則表達式字面量 
  2.  
  3. var re = new RegExp("ab+c"); //方式二 RegExp對象的構造函 

1)正則表達式字面量在腳本加載后編譯。若你的正則表達式是常量,使用這種方式可以獲得更好的性能。

2)使用構造函數,提供了對正則表達式運行時的編譯。當你知道正則表達式的模式會發生改變, 或者你事先并不了解它的模式或者是從其他地方(比如用戶的輸入),得到的代碼這時比較適合用構造函數的方式。

2.正則表達式中的特殊字符

/ ^ $ * + ? . (x) (?:x) x(?=y) x(?!y) x|y {n}

{n,m} [xyz] [^xyz] [/b] /b /B /cX /d /D /f /n /r

/s /S /t /v /w /W /n /0 /xhh /uhhhh

3.正則表達式中的方法

exec、test、match、search、replace和split

有6個,分別是。

exec和test的語法都是regexObj調用,match、search、replace和split的語法都是string調用。

exec:

方法為指定的一段字符串執行搜索匹配操作。它的返回值是一個數組或者 null。語法如下:regexObj.exec(str)

示例代碼:

var re = /quick/s(brown).+?(jumps)/ig;

var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');

返回結果:

學習JavaScript正則表達式

test:

一個在字符串中測試是否匹配的RegExp方法,它返回true或false。語法如下:regexObj.exec(str)

match:

一個在字符串中執行查找匹配的RegExp方法,它返回一個數組或者在未匹配到時返回null。

與exec略有不同,首先是調用方式,math是由字符串調用,而exec是由RegexObj調用。

其次,如果表達式中有“g”標記,那么返回一個匹配的字符串數組,如果沒有就會和exec返回的一樣。下面這個demo就是有“g”。語法如下:str.match(regexp)

示例代碼:

 

 
  1. var re = /quick/s(brown).+?(jumps)/ig; 
  2. var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog'); 

返回結果:

學習JavaScript正則表達式

search:

一個在字符串中測試匹配的String方法,它返回匹配到的位置索引,或者在失敗時返回-1。語法如下:str.search(regexp)

例如上面的示例代碼如果是調用search,返回數據就是4。

replace:

一個在字符串中執行查找匹配的String方法,并且使用替換字符串替換掉匹配到的子字符串。語法如下:str.replace(regexp|substr,newSubStr|function[,flags])

 

 
  1. var re = /(/w+)/s(/w+)/; 
  2. var str = "John Smith"
  3. var result = str.replace(re, "$2, $1"); 

返回的結果將是:“Smith, John”

split:

一個使用正則表達式或者一個固定字符串分隔一個字符串,并將分隔后的子字符串存儲到數組中的String方法。語法如下:str.split([separator[,limit]])

limit就是限制分割后的數組中的個數。下面的是一個demo,但是表達式中有一個是加了括號,一個沒加,返回的數據是不一樣的。

示例代碼:

 

 
  1. var re = /(/d)/; 
  2. var result = 'Hello 1 word. Sentence number 2.'.split(re); 
  3. console.log(result); 
  4. var re = //d/; 
  5. var result = 'Hello 1 word. Sentence number 2.'.split(re); 
  6. console.log(result); 

返回結果:

學習JavaScript正則表達式

4.正則表達式執行返回信息

 

 
  1. var myRe = new RegExp("d(b+)d""g"); 
  2. var myArray = myRe.exec("cdbbdbsbz"); 
  3. console.log(myArray); 

代碼中返回的結果如下:

學習JavaScript正則表達式

學習JavaScript正則表達式

5.正則表達式標志

學習JavaScript正則表達式

 

 
  1. var re = //w+/s/g;//表達式一 
  2. var re = new RegExp("//w+//s""g");//表達式二 
  3. var str = "fee fi fo fum"
  4. var myArray = str.match(re); 
  5. console.log(myArray); 

表達式一和表達式二返回的結果是一樣的。都是下面的那個數組:

學習JavaScript正則表達式

以上就是本文的全部內容,希望對大家的學習有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长治市| 奉化市| 云浮市| 大竹县| 东源县| 东乡| 五原县| 天峨县| 永胜县| 饶阳县| 鸡泽县| 克拉玛依市| 长治县| 襄垣县| 宁强县| 宁陕县| 柘城县| 淮滨县| 台中县| 会宁县| 饶阳县| 秦安县| 托克托县| 罗田县| 固镇县| 哈密市| 远安县| 德保县| 正定县| 包头市| 通化市| 福清市| 天门市| 闸北区| 乌拉特后旗| 上林县| 大化| 无为县| 上栗县| 虞城县| 无为县|