日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

JavaScript 正则表达式

發(fā)布時(shí)間:2025/3/20 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript 正则表达式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JavaScript? 正則表達(dá)式

  版權(quán)聲明:未經(jīng)授權(quán),嚴(yán)禁轉(zhuǎn)載!  


正則表達(dá)式?

什么是正則表達(dá)式

  正則表達(dá)式是用來描述一種特定格式的字符規(guī)則的表達(dá)式。

  正則表達(dá)式常用語在一段文本中搜索,匹配或者替換特定形式的文本。如:詞語出現(xiàn)的頻率統(tǒng)計(jì)、驗(yàn)證字符串是否符合郵箱格式、屏蔽一篇帖子中的限制性詞語等。也叫做“模式匹配”。

  正則表達(dá)式由一些普通字符和一些元字符及特殊符號(hào)組成。普通字符包括大小寫的字母和數(shù)字,而元字符則具有特殊的含義。

如何定義

使用 // 來表示一個(gè)正則表達(dá)式。

最簡(jiǎn)單的正則表達(dá)式,就是字符串本身,比如: /hello/ 。

可以使用元字符來匹配某一些字符串,比如: /1[3579]\d{9}/ 。

正則表達(dá)式中有些字符有特殊的語法含義,是不能夠直接使用的,必須使用 \ 進(jìn)行轉(zhuǎn)以后才可以使用。

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

修飾符

模式匹配中可以使用如下三個(gè)屬性修飾符。

  

字符集

?正則表達(dá)式使用如下語法匹配一個(gè)范圍內(nèi)的字符。

  

元字符

正則表達(dá)式中可以使用如下元字符來進(jìn)行簡(jiǎn)化。

  

量詞

可以使用如下特殊字符定義前一個(gè)字符的出現(xiàn)次數(shù)。

  

選擇和分組

使用如下語法定義子表達(dá)式分組或選擇。

  ?

指定匹配位置

可以使用如下字符進(jìn)行指定位置的匹配

?  ?


正則表達(dá)式 - 查找 search() / match()

學(xué)習(xí)案例代碼

var str = "Hi,2017年6月20日,我要和Mia、Tom、Jimmy去旅游" +"啦~~23333333333~~你要去的話就和我或Mia聯(lián)系,我們的電話是" +":13519005678/15898765432。";// search() 查找。找到第一次出現(xiàn)指定子字符串下標(biāo)的位置,如果沒找到返回-1. // 查找str中有沒有mia console.log(str.search("mia")); // -1 普通字符串查找,只能找到完全相同的。 console.log(str.search("Mia")); // 17 普通字符串查找,只能找到完全相同的。// 使用正則表達(dá)式 字符不需要加引號(hào),普通字符串匹配需要加 console.log(str.search(/mia/)); // -1 console.log(str.search(/mia/i)); // i表示不區(qū)分大小寫 17// match() 匹配,返回找到的指定子字符串組成的數(shù)組 console.log(str.match("Mia")); // 普通的字符串查找必須相同,默認(rèn)只能返回一次 console.log(str.match(/mia/i)); // 普通的字符串查找必須相同,默認(rèn)只能返回一次 console.log(str.match(/mia/ig)); // g 全局匹配,不只匹配一次// 匹配 我/你 console.log(str.match(/[我你]/g)) // []表示匹配中括號(hào)中任意一個(gè)字符。匹配字符串中所有的 “我” 和 “你”// 匹配年份 // 匹配任意一個(gè)數(shù)字 console.log(str.match(/[0-9]/g)); // [0-9]表示匹配任意一個(gè)數(shù)字。 console.log(str.match(/\d/g)); // \d表示匹配任意一個(gè)數(shù)字。 console.log(str.match(/[0-9][0-9][0-9][0-9]/g)); // 匹配任意連續(xù)四個(gè)數(shù)字。 console.log(str.match(/\d\d\d\d/g)); // 匹配任意連續(xù)四個(gè)數(shù)字。// 匹配連續(xù)數(shù)字 console.log(str.match(/[0-9]{4}/g)); // 匹配連續(xù)四個(gè)數(shù)字 console.log(str.match(/\d{4}/g)); // 匹配連續(xù)四個(gè)數(shù)字 console.log(str.match(/(19|20)\d{2}年/g)); // 匹配年份 19XX年 或者 20XX年

  

?


?正則表達(dá)式 - 分割 split()

?學(xué)習(xí)代碼案例

var str ="tom , jerry, mia, jack, Tom ,mary , jimmy";// 將所有的人名存進(jìn)一個(gè)數(shù)組 console.log(str.split(",")); // 使用普通字符串,只能識(shí)別一種分隔符。// 使用正則表達(dá)式 console.log(str.split(/[,,]/)); // 識(shí)別任意一種逗號(hào)。 console.log(str.split(/\s*[,,]\s*/)); // 包含逗號(hào)前后的0個(gè)或多個(gè)空格。// 將 str 字符串的每個(gè)字符分開 var str2 = "Hello World"; console.log(str2.split("")); console.log(str2.split(/\s*/)); // 以空格或非空格分割

  


正則表達(dá)式 - 替換 replace()

?學(xué)習(xí)代碼

var str = "tom , jerry, mia, jack, Tom ,mary , jimmy";// 將所有的逗號(hào)改為兩個(gè)空格。 console.log(str.replace(",", " ")); // 普通字符串 默認(rèn)只能替換第一個(gè)。// 使用正則表達(dá)式 console.log(str.replace(/\s*[,,]\s*/g, " "));// 將 tom 替換為 Alice console.log(str.replace(/tom/ig, "Alice"));// 找到說有的英文名稱 console.log(str.match(/[A-z]{2,}/g)) console.log(str.match(/[A-z]+/g))console.log(str.replace(/[A-z]+/g, "***"));// 將所有的英文名稱首字符替換成大寫 console.log(str.replace(/[A-z]+/g, function (word) {var r = word.replace(word[0], word[0].toUpperCase());return r; }));// 去掉所有空格 var str1 = "a b c d e f"; console.log(str1.replace(/\s+/g,""));

  


正則表達(dá)式對(duì)象?

?

?

?

?

var s1="Hello,今天是2017.6.20,我和tom、jerry在一起玩耍。";//匹配hellovar reg1=/hello/ig;var reg2=new RegExp("hello","ig");console.log(s1.match(reg1));console.log(s1.match(reg2));//匹配連續(xù)4個(gè)數(shù)字var reg3=/[0-9]{4}/g;var reg4=new RegExp("[0-9]{4}","g");var reg5=/\d{4}/g;var reg6=new RegExp("\\d{4}","g");//使用\開頭的元字符,需要再次使用\轉(zhuǎn)義,即雙斜杠 console.log(s1.match(reg3));console.log(s1.match(reg4));console.log(s1.match(reg5));console.log(s1.match(reg6));//匹配一個(gè).var reg7=/\./g;var reg8=new RegExp("\\.","g");//雙斜杠轉(zhuǎn)義 console.log(s1.match(reg7));console.log(s1.match(reg8));

  

?

//test(),用于檢測(cè)一個(gè)字符串是否匹配某個(gè)模式,若匹配,返回true;若不匹配,返回false//驗(yàn)證密碼:要求,密碼必須是6位數(shù)字var s1="123456";// var reg=/\d{6}/;//部分匹配var reg=/^\d{6}$/;//完全匹配,^表示匹配字符串的開頭,$表示匹配字符串的結(jié)構(gòu),驗(yàn)證時(shí)需要完全匹配console.log(reg.test(s1));

    

?

//exec(),查找字符串中可以匹配某個(gè)模式的子字符串,返回一個(gè)關(guān)聯(lián)數(shù)組,保存著子字符串及所在位置,若未找到,返回null//每次只能找一個(gè),重復(fù)調(diào)用可以自動(dòng)向后查找//屬性lastIndex中保存著下一次開始查找的位置,初始值為0var str="no zuo No die No can no chaochao";var reg=/no/ig;//找到所有的no及所在位置// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);// console.log(reg.exec(str));// console.log(reg.lastIndex);do{var arr=reg.exec(str);if(arr==null) break;// console.log(arr);console.log("在"+arr["index"]+"處找到關(guān)鍵詞:"+arr[0]+",下一次開始查找的位置為:"+reg.lastIndex);}while(true)

    

?


?

結(jié)束了吧!哎!

?

轉(zhuǎn)載于:https://www.cnblogs.com/wjw1014/p/8980019.html

總結(jié)

以上是生活随笔為你收集整理的JavaScript 正则表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。