天天看點

JavaScript 正規表達式

正規表達式(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE)使用單個字元串來描述、比對一系列符合某個句法規則的字元串搜尋模式。

搜尋模式可用于文本搜尋和文本替換。

正規表達式是由一個字元序列形成的搜尋模式。

當你在文本中搜尋資料時,你可以用搜尋模式來描述你要查詢的内容。

正規表達式可以是一個簡單的字元,或一個更複雜的模式。

正規表達式可用于所有文本搜尋和文本替換的操作。

其中修飾符是可選的。

var patt = /runoob/i

執行個體解析:

/runoob/i  是一個正規表達式。

runoob  是一個正規表達式主體 (用于檢索)。

i  是一個修飾符 (搜尋不區分大小寫)。

在 JavaScript 中,正規表達式通常用于兩個字元串方法 : search() 和 replace()。

search() 方法 用于檢索字元串中指定的子字元串,或檢索與正規表達式相比對的子字元串,并傳回子串的起始位置。

replace() 方法 用于在字元串中用一些字元替換另一些字元,或替換一個與正規表達式比對的子串。

使用正規表達式搜尋 "Runoob" 字元串,且不區分大小寫:

var str = "Visit Runoob!";

var n = str.search(/Runoob/i);

輸出結果為:

6

search 方法可使用字元串作為參數。字元串參數會轉換為正規表達式:

檢索字元串中 "Runoob" 的子串:

var n = str.search("Runoob");

使用正規表達式且不區分大小寫将字元串中的 Microsoft 替換為 Runoob :

var str = document.getElementById("demo").innerHTML;

var txt = str.replace(/microsoft/i,"Runoob");

結果輸出為:

Visit Runoob!

replace() 方法将接收字元串作為參數:

var txt = str.replace("Microsoft","Runoob");

JavaScript 正規表達式

正規表達式參數可用在以上方法中 (替代字元串參數)。

正規表達式使得搜尋功能更加強大(如執行個體中不區分大小寫)。

修飾符 可以在全局搜尋中不區分大小寫:

修飾符

描述

i

執行對大小寫不敏感的比對。

g

執行全局比對(查找所有比對而非在找到第一個比對後停止)。

m

執行多行比對。

方括号用于查找某個範圍内的字元:

表達式

[abc]

查找方括号之間的任何字元。

[0-9]

查找任何從 0 至 9 的數字。

(x|y)

查找任何以 | 分隔的選項。

元字元是擁有特殊含義的字元:

元字元

\d

查找數字。

\s

查找空白字元。

\b

比對單詞邊界。

\uxxxx

查找以十六進制數 xxxx 規定的 Unicode 字元。

量詞:

量詞

n+

比對任何包含至少一個 n 的字元串。

n*

比對任何包含零個或多個 n 的字元串。

n?

比對任何包含零個或一個 n 的字元串。

在 JavaScript 中,RegExp 對象是一個預定義了屬性和方法的正規表達式對象。

test() 方法是一個正規表達式方法。

test() 方法用于檢測一個字元串是否比對某個模式,如果字元串中含有比對的文本,則傳回 true,否則傳回 false。

以下執行個體用于搜尋字元串中的字元 "e":

var patt = /e/;

patt.test("The best things in life are free!");

字元串中含有 "e",是以該執行個體輸出為:

true

你可以不用設定正規表達式的變量,以上兩行代碼可以合并為一行:

/e/.test("The best things in life are free!")

exec() 方法是一個正規表達式方法。

exec() 方法用于檢索字元串中的正規表達式的比對。

該函數傳回一個數組,其中存放比對的結果。如果未找到比對,則傳回值為 null。

以下執行個體用于搜尋字元串中的字母 "e":

/e/.exec("The best things in life are free!");

字元串中含有 "e",是以該執行個體輸出為:

e

JS 判斷輸入字元串是否為數字、字母、下劃線組成

JS 判斷輸入字元串是否全部為字母

JS 判斷輸入字元串是否全部為數字

完整的 RegExp 對象參考手冊,請參考我們的

JavaScript RegExp 參考手冊。

該參考手冊包含了所有 RegExp 對象的方法和屬性。

上一篇: 單點登入
下一篇: 檔案傳輸