JS RegExp 對象

概述

  • RegExp對象表示正則表達式,是由普通字符和特殊字符(也叫元字符或限定符)組成的文字模板
  • 用途:對字符串執行模式匹配

建立RegExp對象

構造函數

var 變量 = new RegExp("正則表達式","匹配模式");
複製代碼

字面量

var 變量 = /正則表達式/匹配模式;
複製代碼

使用typeof檢查正則對象,會返回object正則表達式

正則表達式語法

匹配模式

  • g:global 全局匹配
  • i:ignore case 忽略大小寫匹配
  • m: multiple lines 多行匹配

基本元字符

  • .: 任何單個字符(除了換行和行結束符)
  • \: 轉義字符,表示後一個字符不能從字面上解釋
  • |: 或
  • []: 定義一個字符集合,匹配字符集合中的任意字符,/[abc]/等價於/a|b|c/
  • [^]: 對上面一個集合取非
  • -: 定義一個區間

特殊元字符

量詞和位置

貪婪與懶惰(非貪婪)

正則表達式默認會匹配貪婪模式(儘量多的匹配)。數組

開啓懶惰模式(儘量少的匹配):在量詞後面加 ?

RegExp 對象方法

compile()

  • 用於在腳本執行過程當中編譯正則表達式
  • 也可用於改變和從新編譯正則表達式。
RegExpObject.compile(regexp,i/g/gi);
複製代碼

exec()

  • 檢索字符串中指定的值。返回找到的值,並肯定其位置
  • 返回值:若是 exec() 找到了匹配的文本,則返回一個結果數組。不然,返回 null
RegExpObject.exec(string);
複製代碼

test()

檢索字符串中指定的值。返回 truefalsebash

RegExpObject.test(string);
複製代碼

支持正則表達式的 String 對象的方法

search()

檢索與正則表達式相匹配的子字符串。函數

str.search(regexp);
複製代碼
  • 返回值:str第一個regexp 相匹配的子串的起始位置。若是沒有任何匹配返回 -1。
  • search() 忽略標誌 g。老是返回第一個匹配的位置。

match()

找到一個或多個正則表達式的匹配。spa

str.match(regexp);
複製代碼
  • 返回值:存放匹配結果的數組
  • 找到一個仍是多個取決於全局標誌g
  • 返回指定的值,而不是字符串位置。

repalce()

替換與正則表達式匹配的子串。code

str.replace(regexp/substr,replacement)
複製代碼
  • 返回值:一個新的字符串
  • 設置全局標誌g,替換全部匹配子串。不然,只替換第一個匹配子串。
  • replacement 中的 $ 字符具備特定的含義。

split()

把字符串分割爲字符串數組。regexp

str.split(regexp,howmany)
//regexp:必需。從該參數指定的地方分割 
//howmany:可選。該參數可指定返回數組的最大長度。若是設置了該參數,返回的子串不會多於這個參數指定的數組。若是沒有設置該參數,整個字符串都會被分割。
複製代碼
  • 返回一個字符串數組。返回的數組中的字串不包括regexp自身
相關文章
相關標籤/搜索