正則表達(dá)式

2018-07-10 14:20 更新

正則表達(dá)式為標(biāo)書字符串規(guī)則的表達(dá)式。下面為兩個例子為在 JavaScript 中的使用,

  • /pattern/attrs
  • new RegExp(pattern, attrs)

錨點(diǎn)

錨點(diǎn)用于匹配一個位置,下列為常用的錨點(diǎn)

  • ^ 起始的位置 /^http/
  • $ 結(jié)尾的位置 /\.jpg$/
  • \b 單詞邊界

字符類

字符類用于匹配一類字符中的一個,下面為幾個常用的例子,

  • [abc] 可用于匹配 a b 還有 c
  • [0-9] 可用于匹配一個數(shù)字
  • [^0-9] 可用于匹配一個數(shù)字
  • [a-z] 可用于匹配一個字母
  • . 任意字符但換行符除外

元字符

元字符為具有特殊意義的字符。常見的有,

  • ^, $, \b
  • \d 用于匹配數(shù)字 [0-9]
  • \D 用于匹配 [^\d]
  • \s 用于匹配空白符
  • \S 用于匹配非空白符 [^\s]
  • \w 用于匹配任意單詞字符(例如程序中的變量字符) [A-Za-z0-9_]
  • \W 用于匹配非單詞字符 [^\W]

量詞

量詞用于表現(xiàn)字符出現(xiàn)的次數(shù)。可用的連詞如下,

  • {m,n} 用于表示出現(xiàn) m 到 n 次之間。
  • * 用于表示出現(xiàn) 0 到無窮之間也就等同于 {0,}
  • ? 用于表示出現(xiàn) 0 次到 1 次也等同于 {0,1}
  • + 用于表現(xiàn)出現(xiàn) 1 次以及一次以上也等同于 {1,}

轉(zhuǎn)移符

轉(zhuǎn)義符需要在匹配的字符是元字符的時候使用。使用 \ 來進(jìn)行轉(zhuǎn)移即可。

多選分支

多選分支用于表示的概念。/thi(c|n)k/ 其又等同于 /thi[cn]k/。其還可以用于匹配文件擴(kuò)展名 /\.(png|jpg|jpeg|gif)$/ 。

常用方法

測試:regxObj.test(str)

其用于測試正則表達(dá)式與指定字符串是否匹配。

/123/.test(123); // true
/123/.test(111); // false
/123/.test('x123'); // true

捕獲

其用于保存所匹配到的字符串為后續(xù)開發(fā)所用。() 可用于捕獲,正則表達(dá)式再運(yùn)行時會將其保存下來,(?:) 則不予保存。

// str.match(regexp)
var url = 'http://www.google.com/query?test=li-xinyang#cool';
var reg = /(https?:)\/\/([^\/]+)(\/[^\?]*)?(\?[^#]*)?(#.*)?/;

var arr = url.match(reg);
var protocol = arr[1];
var host = arr[2];
var pathname = arr[3];
var search = arr[4];
var hash = arr[5];

搜索與替換

regexpObj.exec(str) 可以提供更強(qiáng)大的檢索,它可以提供更詳盡的結(jié)果 index 也可以提供過程狀態(tài) lastIndex。

str.replace(regex/substr, replacement) 可以使用正則表達(dá)式來對字符串進(jìn)行替換。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號