JS中正規表示式

2021-04-12 14:04:44 字數 2234 閱讀 9170

js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。

一、regexp(正規表示式)的屬性和方法

1、屬性

regexp的例項有幾個唯讀的屬性:

global表示是否為全域性匹配,

igorecase表示是否忽略大小寫,

multiline表示是否為多行匹配,

source是正則式的源文字,如/[ab]/g的源文字就是[ab];

另外還有乙個可寫的屬性是lastindex,表示下次執行匹配時的起始位置。

2、方法

regexp有兩個方法exec和test,均以待匹配的字串為引數。

(1)exec

如果沒有發現匹配則返回null,否則返回乙個陣列,該陣列的第一項為匹配的字串,接下去為與各個子表示式相匹配的子串;該陣列的屬性index表示發生匹配的位置,屬性input表示被檢索的字串。

注意:如果正則式具有全域性屬性g,則執行一次exec後,該regexp物件的lastindex屬性會被設為緊接著匹配子串的字元位置,當該regexp物件再次呼叫exec時就會從lastindex處開始執行匹配。如果exec沒有發現任何匹配,它會將lastindex設為0。當然,如果沒有全域性屬性g的話,exec總是會將lastindex設為0。

例如:re = /[ab]+(c)+/g;

m = re.exec('acabcc');

// m[0]為'a', m[1]為'c', m.index為0,m.input為'acabcc',re.lastindex為2

m = re.exec('acabcc');

// m[0]為'ab', m[1]為'cc', m.index為2,m.input為'acabcc',re.lastindex為6

m = re.exec('acabcc');

// m為null,re.lastindex為0

(2)test

test方法執行一次exec,如果發生匹配返回true,否則返回false。

因為test方法是呼叫exec的,所以也可以用test方法來遍歷乙個字串。

二、和正則式相關的幾個string(字串)的方法

1、search(regexp)

返回第乙個與之匹配的子串的開始位置,如果沒有匹配則返回-1。

傳入的引數如果不是正則式則會傳遞給regexp建構函式先轉成正則式再進行匹配.

不支援全域性匹配g

2、replace(regexp, replacement)

第乙個引數是正則式,第二個引數是要進行替換的字串。

如果正則式指定了全域性模式g,則會替換所有的匹配,否則只替換第乙個匹配。replacement中的$符號具有特殊含義,$1,$2,...,$99 代表與正則式中的第1個到第99個子表示式相匹配的文字,$& 代表與正則式相匹配的文字,$` 代表位於匹配字串左側的文字,$' 代表位於匹配字串右側的文字,$$ 為直接量$

例如,想用花引號代替直引號,可用如下**:

text.replace(/"([^"])*"/g, "``$1''")

另外,replacement也可是函式,傳入的引數就是匹配的文字,返回替換的文字即可。

例如,將文字中每個單詞的首字母改為大寫字母:

text.replace(//b/w+/b/g, function(word))

3、match(regexp)

無匹配時返回null, 否則返回乙個陣列,該陣列的內容取決於正則式是否具備全域性屬性g。如果沒有全域性屬性g,則match的返回值和exec的返回值類似。如果具有全域性屬性g,則返回陣列代表的是所有匹配的文字,而不含有任何子表示式匹配的資訊,也沒有index和input屬性

4、split(delimiter, limit)

返回乙個字串陣列,這些陣列元素是通過從頭到尾檢索字串中與delimiter相匹配的文字,在文字之前和之後分割原string得到,返回的子串中不包括定界符文字(注:當delimiter是包含子表示式的正則式時,返回陣列中將包含與子表示式相匹配的文字,但是不包含與整個正則式相匹配的文字)。如果定界符與字串的開頭相匹配,則返回陣列的第乙個元素是空串;如果定界符與字串結尾相匹配,則陣列的最後乙個元素是空串(注:如果delimiter是空串或與空串相匹配的正則式,那麼字串的每個字元之間都被分割,返回陣列長度與原字串長度一致,因為空串不匹配字串的開頭或結尾!

例如:"helloworld".split(/(<[^>]*>)/)

返回 ['hello ', '', 'world', '', ''])。

js中正規表示式

1 正則的建立方式?第一種 通過new關鍵字建立 var reg new regexp 第二種 字面量建立 var reg 2.元字元 一 d 數字字元 0 9 d 非數字字元 w 數字 字母 下劃線字元 即單詞字元 w 非單詞字元 s 空格字元 s 非空格字元 b 單詞邊界 匹配的只是乙個位置 這...

js中正規表示式驗證 js 正規表示式驗證

function validation u4e00 u9fa5 uf900 ufa2d validation.checkname function str u4e00 u9fa5 uf900 ufa2d validation.checknames function str 0 9 a za z va...

js中正規表示式了解

正規表示式 正則定義 顯式定義 var reg new regexp 正規表示式模式 0 9 表示匹配數字 var reg new regexp 0 9 隱式定義 var reg 正規表示式模式 d 表示匹配數字 var reg2 d var reg3 0 9 方法test 作用 是否匹配正規表示式...