正規表示式內容梳理

2022-06-30 17:00:12 字數 2931 閱讀 5673

正規表示式是乙個描述字元模式的物件,在js中,regexp表示正則物件。正則的功能十分強大,可以大幅度簡化**。正澤德功能可以匹配檢索大批量資料。切使用範圍非常廣泛

script  

var rel = /abc/ //建立乙個正規表示式給變數

var rel2 = new regexp(/abc/)構建函式創造正則

//構建函式的第二種寫法

var rel2-1 = new regexp(」abc「)

//等同於直接寫入正則

var rel3 = regexp(」hell 「)//將乙個字串轉化為正則

轉換函式

script

正規表示式的三種寫法沒有固定要求,但是如果你眼睛不瞎坑定選擇第一種。demo:

var str = "a1bcd"

var rel = /\d/g //\d為匹配數字

console.log(rel.test(str)) ture

//測試字串裡是否存在滿足正則的內容,有為ture 沒有為false

以上**中,用來測試結果,一種非常常見的寫法。

demo:

var a = "abcgfjkl00";

var rle = /b/ //檢索b

console.log(a.search(rle))

//檢索滿足正則條件的值在字串中的索引值

以上**用了search方法,用域檢索索引值。

demo:

var str = "123 456 789 789 asd asd ";

var rel = /123/

console.log(str.match(re));匹配 match

//輸出的是123 ,因為只匹配了一次想要全部匹配需要在正則後面加g

var rel2 = /123/g //全部配

以上demo呼叫的match方法,match中文意思是匹配配對,用次方法配合正則的g轉義符可以檢索所有哦符合正則條件的值。

使用正則配合一些方法可以達成一些非常強大的功能

正則中存在著許多字元,有些字元在解析之後**義)對正則的匹配的型別有非常大的幫助。

常用的轉義字元

var str = "1231asdasd23"

var rel = / \d+/;

console.log (str.match(rel));

//結果只找到了乙個數字

字串中雖然存在著符合正則條件的值但是只輸出了乙個,此時如果在正則後面加乙個g就可以作用於整個字串。

var rel = /d/g
此通過修飾符g已經拿到了所有的數字

var rel = /\d+/g

var str = "123 123 456"

//此時修飾符+號可以匹配任意長度的值

輸出console.log(str.match(rel))

雖然g修飾符可以幫我們找出來所有滿足要求的值,但是如果我們要在陣列裡面找到一串值,就只能去匹配字串的長度來尋找,+可以匹配任意長度的值。

雖然有許多修飾符的存在可以讓處理正規表示式更加方便,如果我們需要自定義檢索範圍盡心配對的話,還是需要使用自定義檢索範圍的寫法

var rel = /<.+>g/
因為html標籤名長度和標籤型別並不固定所以使用.可以匹配所有的標籤名,使用+可以匹配所有長度的標籤。

貪婪模式是因為在js中,正規表示式會在匹配成功的前提下會盡可能的奪取匹配資料,而非貪婪模式,是在滿足配對的條件下盡可能少的去匹配資料。

var rel = /^\w+@[a-z0-9]+\.[a-z]$/

//^上尖括號表示開始,$表示結束。將整個正規表示式圈起來就不會再發生貪婪模式的現象。

正則當中漢字也是可以進行配對的,配對的範圍是計算機中打出的第乙個漢字到最後乙個漢字

第乙個是一最後乙個是龥yu。 正則寫法是[\u2e80-\u9fff]這個代表了漢字的範圍;

正則當中,我們輸入的每乙個字元都是乙個原子,原子是最基本的組成部分,也是最小的單位,

在正則當中()被稱為模式單元可以改變優先順序。

console.log("jack".match(/jack|rose/)); // jack
模式單元寫法:

console.log('jack'.match(/jac(k|r)ose/))
一般來講上面的**是不會匹配到內容,實際上正確的會被匹配到的內容應該是jackose或者jacrose

console.log("dds".match(/dds/))

//顯然返回的是dds

如果需要匹配多個dds就可以將多個原子視為乙個原子

demo:

console.logconsole.log("ddsddsdds".match(/(dds)/));// 

//返回的shiddsddsdds

正則可以將內容村粗到內容中,並且可以通過索引值對記憶體中的資料進行訪問,

console.log('aaa'.match(/aaa/)); // aaa

// 我們如果改為下面這種寫法

console.log('aaa'.match(/(a)(a)(a)/)); // 0:aaa 1:a 2:a 3:a 內容被儲存到了記憶體之中

因為記憶體容量能省則省,所以當想把資料從記憶體中移除的話可以通過"?;"的形式來一處。

demo:

console.log('aaa'.match(/(?:a)(a)(a)/));// 0:aaa  1:a 2:a

正規表示式知識梳理

概述 正規表示式 regular expression 描述了一種字串匹配的模式 pattern 可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串等。正規表示式是由普通字元 例如字元 a 到 z 以及特殊字元 稱為 元字元 組成的文字模式。模式描述在搜尋文字時...

正規表示式知識梳理

首先先貼個 此工具是用來幫助理解正規表示式的,在你閱讀正規表示式的時候非常有用。具有特殊含義的非字母字元。包括 如果你能一下子就說出這些符號的含義,表示正規表示式的基礎已經掌握了。用來匹配一類字元裡的乙個 表示不包括這類字元。中括號中的 表示取反的意思 中括號的裡 表示範圍的意思。匹配所有字元。d ...

正規表示式知識梳理

1 概述 正規表示式 regular expression 描述了一種字串匹配的模式 pattern 可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串等。正規表示式是由普通字元 例如字元 a 到 z 以及特殊字元 稱為 元字元 組成的文字模式。模式描述在搜尋文...