成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Javascript正則表達式詳解(一)

zeyu / 3315人閱讀

摘要:定義在中,定義一個正則表達式有兩種方式,一種是直接量,另一種是使用構(gòu)造函數(shù)。元字符在正則表達式的模式中,有一些字符是有特殊含義的,被稱為元字符,如果要匹配元字符,則必須對其進行轉(zhuǎn)義。正則表達式詳解二

簡介

先來一段介紹:

  

正則表達式,又稱正規(guī)表示法、常規(guī)表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學(xué)的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。

簡單說就是:

  

它是對字符串執(zhí)行模式匹配的強大工具。

Javascript中的正則表達式相較于其他語言來說實現(xiàn)的并不完整,但仍然是十分強大的,能夠幫助我們完成絕大多數(shù)模式匹配任務(wù)。下面將一步一步詳細介紹。

定義

在Javascript中,定義一個正則表達式有兩種方式,一種是直接量,另一種是使用構(gòu)造函數(shù)。

直接量

Javascript可以使用類似Perl的語法定義一個正則表達式

var r = /pattern/flags;

其中pattern是任何簡單或復(fù)雜的正則表達式,flags是用以表達正則表達式行為的一個或者多個標識。

flags

g 表示全局(global)模式,即模式將被應(yīng)用于所有字符串

i 表示不區(qū)分大小寫

m 多行模式

來看幾個例子

var r1 = /at/g; // 匹配字符串中所有"at"的實例

var r2 = /.ho/gi; // 匹配以"ho"結(jié)尾的三個字符的組合,不區(qū)分大小寫
使用構(gòu)造函數(shù)

Javascript中正則表達式的構(gòu)造函數(shù)為RegExp,即Regular Expression的縮寫,它接收兩個參數(shù),第一個為要匹配的字符串模式,另一個是可選的標識位。

如:

var r = new RegExp("hello", "g"); // 匹配字符串中所有的"hello"實例

有一點一定要注意,第一個參數(shù)是一個字符串,而不是正則表達式的直接量。

元字符

在正則表達式的模式中,有一些字符是有特殊含義的,被稱為元字符,如果要匹配元字符,則必須對其進行轉(zhuǎn)義。

這些元字符分別是:

( [ {  ^ $ | ) ? * + . ] }

例如:

// 如果要匹配"/user/name"這個字符串,正則表達式需要這樣
var r1 = //user/name/;

var r2 = /.ho/; // 匹配".ho"這個字符串
關(guān)于使用構(gòu)造函數(shù)定義

如果使用構(gòu)造函數(shù)定義正則表達式,由于構(gòu)造函數(shù)的第一個參數(shù)必須是一個字符串,在匹配元字符時,這將會導(dǎo)致雙重轉(zhuǎn)義。

例如:

var r1 = new RegExp("/user", "g"); // wrong

// 由于在字符串中需要轉(zhuǎn)義為,所以,如果要匹配/user,正則表達式需要寫為
var r1 = new RegExp("/user", "g");

所有元字符都需要進行雙重轉(zhuǎn)義

另外,還有一些預(yù)定義的特殊字符也被稱為元字符

元字符 描述
. 查找單個字符,除了換行和行結(jié)束符。
w 查找單詞字符。
W 查找非單詞字符。
d 查找數(shù)字。
D 查找非數(shù)字字符。
s 查找空白字符。
S 查找非空白字符。
 匹配單詞邊界。
B 匹配非單詞邊界。