正則的概念
- 正則表達(dá)式(regular expression)是一個(gè)描述字符規(guī)則的對(duì)象。ECMAScript 的RegExp 類(構(gòu)造函數(shù))表示正則表達(dá)式怀浆,而String 和 RegExp 都定義了使用正則表達(dá)式進(jìn)行強(qiáng)大的模式匹配和文本檢索與替換的方法扬蕊。
- 正則表達(dá)式主要用來驗(yàn)證客戶端的輸入數(shù)據(jù)搀别,因?yàn)榭蛻舳蓑?yàn)證,可以節(jié)約大量的服務(wù)器端的系統(tǒng)資源尾抑,并且提供更好的用戶體驗(yàn)领曼。
創(chuàng)建方式
- 使用RegExp這個(gè)對(duì)象
第一個(gè)參數(shù)就是我們的模式字符串(變量)
var reg= new RegExp('study');
第二個(gè)參數(shù)可選,模式修飾符
var reg = new RegExp('study', 'ig');
i 表示忽略大小寫
g 表示全局匹配
m 表示多行匹配 - 還可以用字面量方式直接聲明(如果正則表達(dá)式中有變量則不可用此方式);
var reg = /study/ig;
測(cè)試正則表達(dá)式
- test(str)方法在字符串中查找是否存在指定的正則表達(dá)式并返回布爾值蛮穿,如果存在則返回 true庶骄,不存在則返回 false。
- exec()方法對(duì)一個(gè)指定的字符串執(zhí)行一個(gè)正則表達(dá)式践磅,簡(jiǎn)言之单刁,就是在一個(gè)字符串中執(zhí)行匹配檢索。如果它沒有找到任何匹配返回null府适,如果找到一個(gè)匹配羔飞,它將返回一個(gè)數(shù)組。
字符串的方法+正則表達(dá)式
- 使用 match 方法獲取匹配內(nèi)容檐春,返回?cái)?shù)組
- 使用 search 來查找匹配數(shù)據(jù)的位置逻淌,和全局沒有關(guān)系,查找第一個(gè)匹配值的位置疟暖。(-1)
- 使用 replace 替換匹配到的數(shù)據(jù),2個(gè)參數(shù):1代表正則卡儒,2代表用來s替換的字符
- 使用 split 拆分成字符串?dāng)?shù)組
exec和match的區(qū)別:
- 定義為非全局匹配時(shí),exec和match執(zhí)行的結(jié)果是一樣
- exec與全局是否定義無關(guān)系俐巴,而match則于全局相關(guān)聯(lián)
獲取控制
字符類:?jiǎn)蝹€(gè)字符和數(shù)字
元字符/元符號(hào)匹配情況
.匹配除換行符外的任意字符
[a-z0-9]匹配括號(hào)中的字符集中的任意一個(gè)字符(小寫字母和數(shù)字)
[^a-z0-9]匹配任意不在括號(hào)中的字符集中的字符
\d匹配數(shù)字[0-9],中括號(hào)表示范圍骨望。
\D匹配非數(shù)字,同[^0-9]相同
\w匹配字母和數(shù)字及_
\W匹配非字母和數(shù)字及_
字符類:空白字符
元字符/元符號(hào)匹配情況
\b匹配單詞邊界
\n匹配換行符
\s匹配空白字符欣舵、空格擎鸠、制表符和換行符
字符類:錨字符
元字符/元符號(hào)匹配情況
^行首匹配 以及 [取反]中括號(hào)里面
$行尾匹配
字符類:重復(fù)字符
元字符/元符號(hào)匹配情況
x?匹配0個(gè)或1個(gè)x
x*匹配0個(gè)或任意多個(gè)x
x+匹配至少一個(gè)x
(xyz)+匹配至少一個(gè)(xyz)
x{m,n}匹配最少m個(gè)、最多n個(gè)x缘圈、
x{m}匹配m個(gè)
字符類:替代字符
元字符/元符號(hào)匹配情況
this|where|logo匹配this或where或logo中任意一個(gè)
應(yīng)用
1.郵政編碼檢測(cè)
2.字符串首尾去空格
3.郵件格式檢測(cè)
4.手機(jī)號(hào)檢測(cè)
5.身份證檢測(cè)
6.日期檢測(cè)
7.中文檢測(cè)
8.字符串過濾
9.密碼強(qiáng)度驗(yàn)證
應(yīng)用
1.表單的驗(yàn)證
2.查找和替換
3.輸入一個(gè)字符串劣光,中文字符占兩個(gè)長(zhǎng)度袜蚕,其他的占一個(gè)長(zhǎng)度,統(tǒng)計(jì)總的字符長(zhǎng)度绢涡。
4.利用正則去除html標(biāo)簽標(biāo)簽
5.利用正則去重
6.利用正則統(tǒng)計(jì)字符個(gè)數(shù)
綜合應(yīng)用
1.掌握正則的封裝
2.掌握綜合表單驗(yàn)證