js 正則表達(dá)式

? 正則表達(dá)式

每種數(shù)據(jù)都有自己的規(guī)則,正則表達(dá)式可以描述這個規(guī)則,也可以檢測數(shù)據(jù)是否滿足這個規(guī)則。所以正則表達(dá)式就是專門用來校驗(yàn)數(shù)據(jù)而產(chǎn)生的語法,有如下幾個作用;

校驗(yàn)數(shù)據(jù)

提取數(shù)據(jù)

替換數(shù)據(jù)

創(chuàng)建正則表達(dá)式

JS中提供兩種創(chuàng)建正則表達(dá)式的方法,字面量方式、構(gòu)造函數(shù)方式

(1)字面量方式:

var reg=/\d/;? ? //\d是正則表達(dá)式中的元字符 用來表示這是0-9之間的任何一個數(shù)字

(2)構(gòu)造函數(shù)方式:

var reg = new RegExp("\\d{6}");

校驗(yàn)數(shù)據(jù)

正則表達(dá)式.test(字符串)? ? ? ? //正則表達(dá)式提供的方法

var reg=/\d/;

var str='1';

var res= reg.test(str);? //測試字符是否滿足正則表達(dá)式規(guī)則,如果測試到有,返回true

? ? ? 字符串.search(正則表達(dá)式)? ? ? ? //字符串提供的方法


? var reg=/\d/

? var str="asdadsa4dasd"

? var res=str.search(reg)// 驗(yàn)證方法 找到返回下標(biāo) 找不到返回-1

? ? //在字符串中找滿足正則表達(dá)式的那一部分

區(qū)別:

.test()方法是正則表達(dá)式提供的,.search()是字符串提供的,

.test()方法返回布爾值,search()返回下標(biāo)

提取數(shù)據(jù)

正則表達(dá)式.exec(字符串)

? var reg=/\d/

? var str="asdadsa455dasd"

? var res=reg.exec(str)? //字符串中滿足正則表達(dá)式的部分提取出來

//返回一個數(shù)組,內(nèi)容是4

//遇到滿足條件的就返回,所以只提取到4


字符串.match(正則表達(dá)式)

? var reg=/\d/

? ? var str="asd2adsa455dasd"

? ? var res=str.match(reg)//字符串中滿足正則表達(dá)式的部分提取出來

? ? console.log(res[0])


區(qū)別:

? 正則表達(dá)式.exec(字符串),正則表達(dá)式提供的方法

? 字符串.match(正則表達(dá)式) 字符串的方法

相同:

? 都返回一個數(shù)組,只要匹配到符合規(guī)則的數(shù)據(jù)就返回

替換數(shù)據(jù)

字符串.replace(正則表達(dá)式,新的內(nèi)容)

var reg=/\d/

? ? var str="1還是一"

? ? var ment="*"

? ? var res=str.replace(reg,ment)

? ? console.log(res)

? ? //返回:*還是一

正則表達(dá)式中的特殊字符

元字符:用來代表數(shù)據(jù)中的規(guī)則;

這里列舉一些常用的元字符;

\d 代表任意一個數(shù)字

\D 代表任意一個非數(shù)字

\w 代表任意一個數(shù)字、字母、下劃線

\W 代表任意一個非數(shù)字 字母 下劃線

. 代表任意一個字符 統(tǒng)配

\s 代表任意一個空格

\s 代表任意一個非空格


還可以使用一些別的字符,例如:


var reg=/bc/ //表示字符bc

var reg=/[1-9]/? ? //表示數(shù)字1-9

var reg=/[a-z]/? ? //表示字母a-z


當(dāng)正則表達(dá)式是:var reg=/\d/

字符串是 var str="ab11a"

如果使用exec或match提取只可以提取到一個1,如何將兩個1都提取出來呢?

這里需要給正則表達(dá)式添加修飾符。

? var str="abd55sad448da";

//修飾符:{提取個數(shù)}

var reg=/\d{2}/? //表示提取兩位的任意數(shù)字

var res=str.match(reg)

? ? console.log(res)

? ? //返回 55? 可以一次提取兩個數(shù)字。

reg=/\d{n}/? 代表規(guī)則為 n個任意字符

reg=/\d{n,m}/ 代表最少n個字符,最多m個字符

reg=/\d{n,}/? 代表最少n個,最多不限

reg=/\d+/? 代表至少一位? 至多不限制

reg=/\d?/ 代表最多一位(0位可以匹配到),再多就匹配不到了

reg=/\d*/ 代表幾位都可以。

萬能匹配? .* 可以匹配到任意內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式中的特殊字符 字符 含意 \ 做為轉(zhuǎn)意,即通常在""后面的字符不按原來意義解釋,如/b/匹配字符"b",...
    Allan要做活神仙閱讀 610評論 0 0
  • 正則表達(dá)式(Regular Expression)是計算機(jī)科學(xué)的一個概念。正則表達(dá)式使用單個字符串來描述、匹配一系...
    貪睡de獅子閱讀 345評論 0 0
  • 1.創(chuàng)建JS正則表達(dá)式 let reg1 = /abc/g; let reg2 = new Reg('abc', ...
    流氓兔之夫閱讀 666評論 0 3
  • 一、 什么是正則表達(dá)式 1、 概述 以上代碼中,在判斷時,用到了 標(biāo)準(zhǔn)庫中 string 對象的indexOf()...
    寵辱不驚丶?xì)q月靜好閱讀 626評論 0 1
  • day10-正則表達(dá)式 用于匹配字符串中字符組合的模式,主要用來驗(yàn)證客戶端的輸入數(shù)據(jù)。用戶填寫完表單單擊按鈕之后,...
    learninginto閱讀 401評論 0 8

友情鏈接更多精彩內(nèi)容