javascript基礎 正規表示式

2021-09-13 12:46:28 字數 2333 閱讀 4574

js中主要有兩種方式建立正規表示式

var regex = /abc/g;
var regex = new regexp('abc','g') 

//等價於

var regex = /abc/g;

而在新增的es6中允許第二個引數新增修飾符而且返回的正規表示式中會忽略原有的修飾符,只使用新指定的修飾符

var regex = new regexp(/abc/ig, 'i')

//等價於

var regex = /abc/i;

一共有五個字串方法:

search()

replace()

split()

match()

exec()

search() 方法 用於檢索字串中指定的子字串,或檢索與正規表示式相匹配的子字串,並返回子串的起始位置。

var str = "abcdefg"; 

var n = str.search(/c/i); //2

replace() 方法 用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串。

var str = "abcdefg"; 

var n = str.replace(/cde/i,'hij'); // "abhijfg"

split() 用於分割字串,返回被拆分的陣列。

var str = "a,b,c,d,e,f,g"; 

var n = str.split(/,/i); // ["a", "b", "c", "d", "e", "f", "g"]

match() 返回被匹配的子串。

var str = "abcdefgabc"; 

var n = str.match(/abc/g); //["abc", "abc"]

//這裡使用 g 表示global 即全域性匹配 若使用 i 則返回 ["abc"]

exec() 方法在乙個指定字串中執行乙個搜尋匹配。返回乙個結果陣列或 null。

/e/.exec("abcde"); //["e"]
修飾符作用i

執行對大小寫不敏感的匹配

g執行全域性匹配(查詢所有匹配而非在找到第乙個匹配後停止)

m執行多行匹配

ues6新增修飾符 含義為「unicode 模式」,用來正確處理大於uffff的 unicode 字元

yes6新增修飾符 也是全域性匹配,後一次匹配都從上一次匹配成功的下乙個位置開始。不同之處在於,g修飾符只要剩餘位置中存在匹配就可,而y修飾符確保匹配必須從剩餘的第乙個位置開始,這也就是「粘連」的涵義

\ / [ ] ()   ? + *  | . ^ $

//以上字元在正規表示式**現 需要使用\來進行轉義

//如 \+ 表示匹配+號這個字元

因為特殊字元實在是太多了,列一些常用的 其他可以去mdn官網查閱

表示式描述

abc查詢方括號之間的任何字元

查詢2次到4次貪婪匹配,即盡可能多的匹配

[^abc]

查詢任何不在方括號之間的字元

[0-9]

查詢任何從 0 至 9 的數字

[a-z]

查詢任何從小寫 a 到小寫 z 的字元

[a-z]

查詢任何從大寫 a 到大寫 z 的字元

[a-z]

查詢所有英文本元

\d查詢所有數字等同 [0-9]

\d排除任何數字等同 [^0-9]

\w下劃線+任何單詞等同[a-za-z0-9]

\w查詢任何從小寫 a 到小寫 z 的字元

\s任何空白字元

\s排除空白字元

^匹配行首

$匹配行尾

*匹配0次或多次

+匹配一次或多次

?匹配一次或0次

.匹配所有字元

(0\d)?[1-9]\d(-\d)

// 固定**正則匹配 如 010-82612222-311

// 區號 **號 分機號

[1-9]\d

// qq號匹配五位到十位

\s*@\s*\.\s*

//匹配乙個簡易的郵箱

因為正則裡的東西太多了,每次查文件都很麻煩,參照看網上一些部落格,自己寫了乙個總結,錯誤之處還請指出,謝謝。

Javascript之正規表示式基礎

regexp 物件表示正規表示式,它是對字串執行模式匹配的強大工具。1 regexp 物件的建立 直接量語法 pattern attributes 建立 regexp 物件的語法 new regexp pattern,attributes 注 引數 pattern 是乙個字串,指定了正規表示式的模式...

JavaScript正則驗證函式

1 驗證年齡格式 年齡只能0 99,兩位數 2 控制文字框只能輸入數字 3 驗證字串是否只包含數字 4 驗證email格式 5 驗證文字必須是英文 6 驗證貨幣格式 保留小數點2位 7 驗證url格式 8 驗證手機格式 9 驗證年份格式 10 驗證日期格式 yyyy mm 11 驗證正負貨幣格式 保...

JavaScript中正則驗證

在一次使用js的正則對輸入字串進行驗證時,使用了正則物件的test方法,此次,我的驗證是對乙個版本號的格式的驗證 版本號格式如下 a.b.c,其中,a b c均是乙個一到三位的數字,比如,1.2.3。正規表示式 var reg d.d.d g,這是乙個完全匹配。第一次呼叫 reg.test a.b....