JS基礎入門篇(三十三) 正規表示式

2021-09-13 15:17:17 字數 4864 閱讀 8494

方法一:使用乙個正規表示式字面量,其由包含在斜槓之間的模式組成。

var reg1 = /a/;

var reg2 = /ab+c/;

方法二:呼叫regexp物件的建構函式

var reg1 = new regexp( "a" );

var reg2 = new regexp( "ab+c" );

1.轉義字元

\s: 空格

\s: 非空格

\d: 數字

\d: 非數字

\w: 字母,數字,下劃線

\w: 非字母,非數字,非下劃線。

\ 進行轉換。模式 /a*/ 代表會匹配 0 個或者多個 a。相反,模式 /a\*/ 將 '*' 的特殊性移除,從而可以匹配像 "a*" 這樣的字串。

. : 代表 任何乙個字元

\b: 起始,結束,空格。eg:/\bm/匹配「moon」中得『m』;/oo\b/並不匹配"moon"中得'oo',因為'oo'被乙個「字」字元'n'緊跟著。

var str = "12 3123";

console.log( str.replace( /\b/g,"|" ) );//|12| |3123|

2.量詞

: n 和 m 都是整數。匹配前面的字元至少n次,最多m次。如果 n 或者 m 的值是0, 這個值被忽略。

*: 匹配前乙個表示式0次或多次。等價於 。

+: 匹配前面乙個表示式1次或者多次。等價於。

?: 匹配前面乙個表示式0次或者1次。。

.: 匹配除換行符之外的任何單個字元。

注意:如果?緊跟在任何量詞 *、 +、? 或 {} 的後面,將會使量詞變為非貪婪的(匹配盡量少的字元),和預設使用的貪婪模式(匹配盡可能多的字元)正好相反

3. 字元類

1.[ ]

:匹配中內容的乙個字元.這指的是範圍匹配。     

eg:/[a-za-z0-9]/:只要是數字,字母都能匹配上。

eg:/[abc]/:只要是a或者b或者c,其中乙個都能匹配的上。

eg:/[a-z.]+/:都匹配「test.i.ng」中的所有字元。

:內部不需要加|,因為它就表示乙個範圍,有或者的含義。

舉例說明1

var re = /0|1|2/g;

var re = /[012]/g;

var re = /[0-2]/g;

以上三種正則表達是乙個意思

舉例說明2

var re = /^([0-9]|1[0-9])$/g; // 判斷數字範圍是否在 0-19 之間

console.log( re.test(20) );//false

console.log( re.test(2) );//true

2. ^

^ : 匹配輸入的開始。

eg: /^a/ 並不會匹配 "an a" 中的 'a',但是會匹配 "an e" 中的 'a'。^表示開始。

注意^放在中,表示的意思。

eg: 例如,[^abc] 和 [^a-c] 是一樣的。他們匹配"brisket"中的『r』,也匹配「chop」中的『h』。 意思是:不是a不是b不是c,則匹配成功。
3. $

$ : 匹配輸入的結束。

eg: /t$/ 並不會匹配 "eater" 中的 't',但是會匹配 "eat" 中的 't'。

test:使用正則匹配字串,如果匹配 返回true,否則false

使用:正則.test(字串);

2.search:使用正則匹配字串,如果匹配返回對應位置,否則返回-1

使用:字串.search(正則);

注意:正則區分大小寫,如果想不區分大小寫,則需要新增識別符號i。對於兩種建立正則的方式,i有兩中不同的寫法。

3.match:使用正則匹配字串,如果匹配,返回對應字串,返回陣列形式,否則 null。

使用:字串.match(正則)。

注意:

1. 返回的是型別是陣列

2. 正則預設匹配成功就會停止,使用識別符號 g(全域性匹配)。

4.注意:正則的貪婪模式

首先需了解:+的含義是: 匹配前面乙個表示式1次或者多次。等價於。

以下是貪婪模式

解釋:

1.正則的貪婪模式是指會匹配最長的,得到數目最多的項。

2.如果 ? 緊跟在任何量詞 *、 +、? 或 {} 的後面,將會使量詞變為非貪婪的(匹配盡量少的字元),和預設使用的貪婪模式(匹配盡可能多的字元)正好相反。

以下是非貪婪模式

5.replace:使用正則匹配字串,如果匹配成功,替換對應字串,返回匹配後的字串。如果不成功,則返回原字串。

使用:字串.replace(正則,替換字串);

1.敏感詞過濾
解析:

1.replace 第二個引數可以是乙個字串,或者函式

2.replace 第二個引數如果是函式的話,這個函式的第乙個引數是每次匹配到的 字元。

3.我給引數的命名為$0,這個是隨意的,只要不是關鍵字保留字都可以。例如a,b都可以的。

2.格式化時間

方式一:

方式二:

方式二的解析:replace 第二個引數如果是函式的話,

1.這個函式的 第乙個引數 是每次匹配到的 字元。

2.之後的引數是通過()的分組,子項按照 "("確定次序。

3.例如第二個引數就是(\d+)匹配到的內容。

3.匹配模式引數的說明

使用情況舉例:當使用replace,並且replace的第二個引數是函式。則這個函式的引數情況,第乙個引數是正則匹配到的值之後的引數是通過( )的分組,子項按照 "("確定次序。

舉例一:

舉例二:

4.過濾標籤

5.檢查是否含有class名

6.找出重複次數最多的字元

方法一:不使用正則。

方法二:使用正則。

解析:\1, \後面的是數字1,不是字母l。

\1是作用是\1前面的表示式,至少要重複一遍。而且前面的表示式要用( )包起來。

\1的使用說明

7.檢測qq號

click

8.去掉前後面的空格

正規表示式 小白入門篇

不論是前端還是後端,正規表示式好像是大家避不開的乙個東西 很多小夥伴糾結於正規表示式很難,很晦澀,我最近看到網上的教程有些比較晦澀,現在我就介紹一下正規表示式,期望大家能夠快速入門。一直以來我覺得學乙個東西需要了解著三個問題 為什麼會有這個東西 即 出現問題 怎麼用這個東西 即 解決問題 這個東西是...

nginx 正規表示式匹配入門篇

1 nginx配置基礎 1 正規表示式匹配 區分大小寫匹配 不區分大小寫匹配 和 分別為區分大小寫不匹配及不區分大小寫不匹配 以什麼開頭的匹配 以什麼結尾的匹配 轉義字元。可以轉.等 代表任意字元 2 檔案及目錄匹配 f和 f用來判斷是否存在檔案 d和 d用來判斷是否存在目錄 e和 e用來判斷是否存...

python基礎(三) 正規表示式

import re 匹配abc m re.findall abc aabbccabccbaccbaaabcabc print m 匹配一位數字,digit m re.findall d 123abc1a2b3c1b2c3a print m 匹配四位數字 m re.findall d d d d 12...