方法一:使用乙個正規表示式字面量,其由包含在斜槓之間的模式組成。
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...