js 正則方法以及支援正則的string物件方法。

2021-09-24 23:46:01 字數 3421 閱讀 6020

在使用正則匹配之前,我們需要了解正則的方法或支援正則的方法。

支援正規表示式的string物件的方法

1.search  檢索與正規表示式相匹配的值

2.match  找到乙個或多個正規表示式的匹配

3.replace 替換與正規表示式匹配的子串

4.split 把字串分割為字串陣列

之前一直以為replace是regexp物件的方法,其實是字串的方法,只是這些方法可以接受regexp作為引數進行匹配操作。

regexp物件方法有

1.compile (已廢棄)

2.exec 檢索字串中指定的值。返回找到的值,並確定其位置

3.test  檢索字串中指定的值。返回 true 或 false

4.tostring 返回正規表示式的字串。

可以接受乙個字串或rexexp物件作為引數,並匹配,匹配到則返回第乙個在字串中找到的位置,否則返回-1,不傳引數則返回0

let reg = /\d/g;

let str = 'uio1'

str.search(reg); //3

str.search("i"); //1

match() 方法可在字串內檢索指定的值,或找到乙個或多個正規表示式的匹配,將匹配到的字元以陣列的形式輸出出來。

let reg = /\d/g;

let str = 'the rain in spain stays mainly in the plain';

str.match(reg)

//輸出 ["t", "h", "e", " ", "r", "a", "i", "n", " ", "i", "n", " ", "s", "p", "a", "i", "n", " ", "s", "t", "a", "y", "s", " ", "m", "a", "i", "n", "l", "y", " ", "i", "n", " ", "t", "h", "e", " ", "p", "l", "a", "i", "n"]

str.match(/ain/g) //輸出 ["ain", "ain", "ain"];

這是比較常用的乙個方法,用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串。常用於屬於框的限制(如只能輸入數字,只能輸入漢字等);

replace(searchvalue,newvalue)

接受兩個引數

searchvalue: 必須,規定子字串或要替換的模式的 regexp 物件。

請注意,如果該值是乙個字串,則將它作為要檢索的直接量文字模式,而不是首先被轉換為 regexp 物件

newvalue:必需。乙個字串值。規定了替換文字或生成替換文字的函式。

也就是searchvalue是查詢到到值,newvalue是替換到值

let reg = /\d/g;

let str = 'f1432fg';

str.replace(reg, ''); //ffg,將查詢到的數字替換為空

str.replace(reg, 'g'); //fggggfg, 將查詢到到數字替換為g

let reg1= /\d/g;

str.replace(reg1, ''); 將所有非數字字元替換為空,也就是只能輸入數字。

用於把乙個字串分割成字串陣列

string.split(separator,limit)

separator:可選。字串或正規表示式,從該引數指定的地方分割 string object。

limit: 可選。該引數可指定返回的陣列的最大長度。如果設定了該引數,

返回的子串不會多於這個引數指定的陣列。如果沒有設定該引數,整個字串都會被分割,

不考慮它的長度。

let str = 'how are you doing today?'

str.split(' ') //以空格劃分 ["how", "are", "you", "doing", "today?"]

str.split() //字串轉換為陣列 ["how are you doing today?"]

str.split('')

//每乙個字元轉換為陣列項 ["h", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]

//傳入正則

let reg = /\d/g;

let str1 = 'oiu1fou4f'

str1.split(reg) //以數字劃分 ["oiu", "fou", "f"]

用於檢索字串中的正規表示式的匹配。

如果字串中有匹配的值返回該匹配值,否則返回 null

let str = 'hello world! hello'

let reg = /hello/g

reg.exec(str) //["hello", index: 0, input: "hello world! hello", groups: undefined]

reg = /hello/g

reg.exec(str) //null

用於檢測乙個字串是否匹配某個模式.

如果字串中有匹配的值返回 true ,否則返回 false。

常用於檢測輸入格式是否正確。例如檢測是否是郵箱,是否是手機號碼

let str = 'hello world';

let reg = /\d/g

reg.test(str) //false

reg = /\d/g

reg.test(str) //true

let reg = /\d/g;

reg.tostring() // 輸出 /\d/g;

更多詳細請參考:

手機號碼驗證:1.手機號碼必須是11位數字,2.必須是以1開頭,3.第二位數不能是0、1或2。

所以可以像下面這樣寫

let reg = /^1[3456789]\d$/

^1 表示一數字1開頭

[3456789] 表示第二位數必須是3-9中的乙個

\d 表示第二位數後面緊跟著9位數字

n$ 表示以n結束。這裡的n是數字。

nginx環境的搭建 支援正則

一 安裝 安裝nginx 發音為 engine x 是由俄羅斯人 igor sysoev 建立的專案,基於 bsd許可。據說他當初是 f5的成員之一,英文主頁 俄羅斯的一些大 已經使用它超過兩年多了,一直表現不凡。安裝nginx 之前需要安裝 pcre 包和zlib 以支援重寫 正則以及網頁壓縮等等...

flask框架(六) 實現支援正則的路由

一 預設路由 user post post post login methods get post 常用路由系統有以上五種,所有的路由系統都是基於一下對應關係來處理 default converters 二 寫轉換器類,支援正則路由 class regexconverter baseconverte...

支援正規表示式的String物件的方法

search 方法 該方法用於檢索字串中指定的子字串,或檢索與正規表示式相匹配的字串。語法 stringobject.search regexp 注意 search 方法不執行全域性匹配,它將忽略標誌g,同時它也沒有regexp物件的lastindex的屬性,且總是從字串開始位置進行查詢,總是返回的...