婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > JS中的正則表達(dá)式及pattern的注意事項(xiàng)

JS中的正則表達(dá)式及pattern的注意事項(xiàng)

熱門(mén)標(biāo)簽:實(shí)用地圖標(biāo)注app 400免費(fèi)電話去哪申請(qǐng) css百度地圖標(biāo)注位置顯示 線上教育ai外呼系統(tǒng) 菏澤智能ai電銷(xiāo)機(jī)器人銷(xiāo)售公司 地圖標(biāo)注商戶中心要收錢(qián)多少 鄂州人工智能電銷(xiāo)機(jī)器人軟件 地圖標(biāo)注字母的軟件 宿遷智能外呼系統(tǒng)供應(yīng)商

RegExp對(duì)象的創(chuàng)建:

  常規(guī)的正則表達(dá)式的創(chuàng)建可用直接量,即斜杠 “/” 括起來(lái)的字符。但在要求參數(shù)變化的環(huán)境下,RegExp()構(gòu)造函數(shù)是更好的選擇:

var reg1 = /'\w+'/g;
var reg2 = new RegExp('\'\w+'','g');

  對(duì)比兩種創(chuàng)建方式,RegExp中的第一個(gè)參數(shù)為要?jiǎng)?chuàng)建的正則字符串,一方面注意,因?yàn)椴皇侵苯恿康谋硎拘问剑虼瞬挥眯备堋?/ ”括起來(lái)了;而是字符串中必須要對(duì)引號(hào)“ ‘ ”和轉(zhuǎn)義符號(hào)“ \ ”進(jìn)行二次轉(zhuǎn)義。

  此外,無(wú)論是直接量還是RegExp()構(gòu)造函數(shù),都是生成了新的RegExp對(duì)象,并將其賦值給變量。

在《Javascript權(quán)威指南》一書(shū)中講到,對(duì)于正則表達(dá)式的直接量,ECMAscript 3規(guī)定在每次它時(shí)都會(huì)返回同一個(gè)RegExp對(duì)象,因此用直接量創(chuàng)建的正則表達(dá)式的會(huì)共享一個(gè)實(shí)例。直到ECMAScript 5才規(guī)定每次返回不同的實(shí)例。

各瀏覽器中,IE一直遵守ECMAScript 5中的規(guī)定,其他瀏覽器的較老版本則遵循ECMAScript 3的規(guī)定。因此在實(shí)際應(yīng)用中,采取構(gòu)造函數(shù)創(chuàng)建的方法比較安全,或者在使用lastIndex屬性時(shí)要記得歸0。

括號(hào)()的使用:

  1、分組

  即把單獨(dú)項(xiàng)組合成子表達(dá)式統(tǒng)一處理,一般用于?、+、*、{n,m}等的重復(fù)處理。見(jiàn)例子:

var reg = /Java(script)?/;

式子里將script進(jìn)行統(tǒng)一處理。

  2、向后引用

  即在正則表達(dá)式中用“\n”(n代表引用的序號(hào))引用式中前面括號(hào)中匹配的文本。見(jiàn)例子:

var reg = /(\d+)[a-z]{3}\1/; 
//20man20
//20man23 錯(cuò)
//reg = /\1[a-z]{3}(\d+)/; 錯(cuò)

  注意 “\n”引用的是前面匹配的文本" 20 ",而不是匹配的正則表達(dá)式" \d+ "。另外,JS里只能引用前面的匹配文本,像例子中的將 \1寫(xiě)在括號(hào)引用的前面,將不會(huì)匹配到任何文本,瀏覽器中會(huì)提示出錯(cuò)。同樣,JS里也不支持類(lèi)似“ (?name>exp) ”(exp為正則字符)的引用命名規(guī)則,只支持?jǐn)?shù)字的引用。

  既然提到了分組和引用,如果只想進(jìn)行分組,而不想引用,則可用 "(?: exp)"的形式,既不匹配文本,也不給引用編號(hào)。見(jiàn)例子:

var reg = /(\w{3})(?:\d+)([a-z]{2})\2/;
//man7788abab

顯然 \2 匹配的是 "ab" 而不是 "7788" 。這樣便于分組處理,也加快了查詢的效率。

  3、子模式匹配

  有時(shí)我們想直接引用操作括號(hào)匹配的本文,那么可以用子模式匹配的功能(權(quán)威指南里叫子模式匹配,有點(diǎn)別扭,實(shí)際就是用一個(gè)變量形式替換匹配的文本)。基本形式是用 '$n'的形式替代匹配編號(hào)為n的文本,常用在String對(duì)象里的replace()方法,見(jiàn)例子,等號(hào)兩邊交換單詞:

var reg = /(\w+)=(\w+)/;
var str = ‘love=hate';
str.replace(reg,'$2=$1');
//"hate=love"

次序、貪婪、懶惰:

  一般的重復(fù)匹配字符如?、+、*、{n,m}在匹配的過(guò)程中,采用貪婪匹配的方法,即盡可能多的匹配到結(jié)果字符。與之對(duì)應(yīng)的是懶惰匹配,即盡可能少的匹配結(jié)果,使用形式只需在重復(fù)匹配字符后加上問(wèn)號(hào)" ? "即可,如??、+?、*?、{n,m}?。見(jiàn)例子:

var str = 'goooogle‘;
var reg1 = /o+/;   //"goooo"
var reg2 = /o+?/;  //"go"

  現(xiàn)在對(duì)例子稍加改動(dòng):

var str = 'goooogle‘;
var reg1 = /o+gle/;  //"oooogle"
var reg2 = /o+?gle/;  //"oooogle"

  改過(guò)后的例子結(jié)果變?yōu)橄嗤耍瑸槭裁?/o+?gle/ 沒(méi)有匹配到“ogle”呢?原來(lái)正則表達(dá)式中總是從左往右進(jìn)行匹配的,不會(huì)從右邊獲取子串進(jìn)行匹配。

  雖然上面的結(jié)果相同,但匹配的原理不太一樣。在reg1中,首先o+會(huì)匹配所有的"o",然后接著匹配"gle",從而完成整體匹配。而在reg2中,o+?會(huì)先匹配一個(gè)"o",然后gle在字符串的第2位到第4位(即原串的"ooo")匹配失敗。進(jìn)而回溯至o+?去匹配第二個(gè)"o",成功后再在第3位到第4位匹配"gle",以此類(lèi)推……最后匹配到整個(gè)字符串。

  總體要記住,從優(yōu)先級(jí)來(lái)說(shuō),從左往右的次序匹配 > 貪婪 / 懶惰匹配。

零寬斷言:

  關(guān)于零寬斷言的總體解釋可參考博文《正則表達(dá)式30分鐘入門(mén)教程》,值得注意的是,JS里只支持零寬先行斷言。即零寬正預(yù)測(cè)先行斷言"(?=exp)"和零寬負(fù)預(yù)測(cè)先行斷言“(?!exp)"。
  所謂“零寬”,就是它并不在匹配的結(jié)果字符中占據(jù)空間。例如“\w","\s"就會(huì)占據(jù)一個(gè)或幾個(gè)空間,依匹配的字符長(zhǎng)度決定。而像”^","$"這種對(duì)應(yīng)的首末位置,不占據(jù)空間,零寬就是屬于這一類(lèi)。

  所謂“正 / 負(fù)預(yù)測(cè)”,是指斷言中要求滿足的情況。“正”表示要滿足exp,“負(fù)”表示要不滿足exp的。

  所謂"先行",是指被匹配的字符串在前面,零寬斷言跟在后面。即串的后一部分是否滿足斷言。

  所謂“斷言”,就是判斷的條件。

  看兩種零寬斷言的例子:

var str = 'java coffeescript';
var reg1 = /\b\w+(?=script\b)/; //coffee 
var reg2 = /\b\w+(?!script\b)/; //java

  reg1為零寬正預(yù)測(cè)先行斷言,"(?=script\b)"表示某單詞需以“script”結(jié)尾,它代表著一種條件,不占有任何空間大小。

  同樣,reg2為零寬負(fù)預(yù)測(cè)先行斷言,"(?!script\b)"表示不以“script”結(jié)尾的單詞。

  另外,因?yàn)闆](méi)有零寬后顧斷言,不能判斷某字符串的前面部分滿足什么條件。但在JS中可以用多次正則表達(dá)式來(lái)實(shí)現(xiàn):先匹配到要找的串,然后截取開(kāi)頭到index的字符子串,再匹配子串末尾是否符合需要的斷言條件。具體用法可另外嘗試一下。

match()與exec()的異同:

  match和exec是正則表達(dá)式匹配字符串的常用方法。兩者實(shí)現(xiàn)的功能差不多,有些細(xì)微的區(qū)別:

  1、使用方式

  match是字符串包裝對(duì)象的方法,用法:String.match(RegExp);
  exec是正則表達(dá)式對(duì)象的方法,用法:RegExp.exec(String);

  2、返回的結(jié)果

    當(dāng)RegExp沒(méi)有設(shè)置全局標(biāo)志 "g" 時(shí):

      兩者的返回結(jié)果相同。即無(wú)匹配值時(shí)返回null,有匹配值時(shí)返回一個(gè)數(shù)組(令array)。array[0]為匹配的字符串,array[1]、array[2]……則對(duì)應(yīng)為正則表達(dá)式中圓括號(hào)匹配的子字符串$1、$2……。同時(shí)數(shù)組帶有兩個(gè)屬性,array.index表示匹配字符串的初始位置,array.input表示正在檢索的字符串。

    當(dāng)RegExp有設(shè)置全局標(biāo)志 "g" 時(shí):

      match在有值時(shí)返回一個(gè)數(shù)組array。數(shù)組的每項(xiàng)依次表示匹配到的所有的字符串,因此不再有圓括號(hào)匹配的子字符串了。此時(shí)數(shù)組沒(méi)有index屬性和input屬性。

      exec則與沒(méi)有全局標(biāo)示 "g" 的表現(xiàn)無(wú)異。此時(shí)返回的是數(shù)組array,array[0]為當(dāng)前匹配的字符串,array[1],array[2]……則為當(dāng)前匹配下的圓括號(hào)匹配的字串。此時(shí)要注意RegExp對(duì)象的lastIndex屬性,表示原字符串中匹配的字符串末尾的后一個(gè)位置。當(dāng)沒(méi)有進(jìn)一步的匹配結(jié)果時(shí),lastIndex屬性置0。因此,可用lastIndex的循環(huán)找出所有的匹配字符串。來(lái)看看例子:

var str = 'I love1 my job22';
var reg = /\b[a-z]+(\d+)\b/g;
array = str.match(reg);
//array = ["love1", "job22"] 
//array.index = undefind
//array.input = undefined
------------------------------------
array = reg.exec(str);
//array = ["love1", "1"]
//array.index = 2
//array.input = "I love1 my job22"
//reg.lastIndex = 7
//run again
reg.exec(str);
//array = ["job22", "22"]
//array.index = 11
//array.input = "I love1 my job22"
//reg.lastIndex = 16
//run again
reg.exec(str);
//reg.lastIndex = 0

  最后,考慮到ECMAScript 3 和ECMAScript 5的版本區(qū)別,每次匹配完之后記得要手動(dòng)將RegExp對(duì)象的lastIndex屬性置0,以滿足老非IE瀏覽器的要求。

js正則表達(dá)式,pattern,注意事項(xiàng)

一句話,請(qǐng)使用,/\w+@+\w+(\.+\w+){1,}/.test(str)  來(lái)驗(yàn)證,不要用"\w+@+\w+(\.+\w+){1,}".test(str) 來(lái)驗(yàn)證;
使用后者,直接,用add@dfddf 就可以通過(guò)驗(yàn)證了;

您可能感興趣的文章:
  • JavaScript高級(jí)程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記2 js基礎(chǔ)語(yǔ)法
  • Javascript基礎(chǔ)知識(shí)(一)核心基礎(chǔ)語(yǔ)法與事件模型
  • JavaScript基礎(chǔ)語(yǔ)法、dom操作樹(shù)及document對(duì)象
  • JavaScript學(xué)習(xí)筆記之基礎(chǔ)語(yǔ)法
  • 詳解AngularJS中的表達(dá)式使用
  • js正則表達(dá)式驗(yàn)證大全(收集)
  • js正則表達(dá)式基本語(yǔ)法(精粹)
  • JavaScript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法(兩種方法)
  • JS正則表達(dá)式基本用法(經(jīng)典全)
  • 日常收集JS郵箱驗(yàn)證正則表達(dá)式
  • 使用JavaScript正則表達(dá)式如何去掉雙引號(hào)
  • JavaScript中的正則表達(dá)式使用及驗(yàn)證qq號(hào)碼的正則
  • JavaScript基礎(chǔ)語(yǔ)法之js表達(dá)式

標(biāo)簽:六安 三亞 鞍山 恩施 咸陽(yáng) 池州 梅州 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JS中的正則表達(dá)式及pattern的注意事項(xiàng)》,本文關(guān)鍵詞  中的,正則,表達(dá)式,及,pattern,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JS中的正則表達(dá)式及pattern的注意事項(xiàng)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于JS中的正則表達(dá)式及pattern的注意事項(xiàng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色成年激情久久综合| 91精品在线观看入口| 精品一区二区三区欧美| 亚洲综合色在线| 成人免费在线视频| 一区二区三区蜜桃| 国产成人精品免费视频网站| 欧美综合亚洲图片综合区| 欧美激情综合五月色丁香小说| 欧美视频日韩视频在线观看| a4yy欧美一区二区三区| 国产91精品在线观看| 日韩在线一区二区三区| 国产精品日韩成人| 久久这里只精品最新地址| 欧美成人a视频| 欧美一区二区日韩一区二区| 欧美三电影在线| 51精品视频一区二区三区| 欧美性一级生活| 国产精品不卡一区二区三区| 伊人一区二区三区| 久久电影网电视剧免费观看| 国产精品白丝jk白祙喷水网站| 99久久久久免费精品国产| 99免费精品视频| 日韩精品一区二区三区视频在线观看| 日韩免费观看高清完整版| 欧美激情一区不卡| 亚洲成a人片综合在线| 国产在线精品一区二区三区不卡 | 欧美日韩一区三区四区| 欧美日韩精品三区| 欧美激情综合网| 奇米888四色在线精品| wwww国产精品欧美| 26uuu精品一区二区在线观看| 国产精品久久久久久一区二区三区| 一卡二卡三卡日韩欧美| 欧美日韩国产天堂| 国产一区二区影院| 一区二区三区视频在线看| 日韩一区二区三区免费观看| 国产成人午夜视频| √…a在线天堂一区| 亚洲色图欧洲色图婷婷| 亚洲欧美日韩中文播放| 成+人+亚洲+综合天堂| 26uuu色噜噜精品一区二区| 全部av―极品视觉盛宴亚洲| 欧美人与z0zoxxxx视频| 日本麻豆一区二区三区视频| 日韩视频在线你懂得| 蜜桃av一区二区在线观看| 久久免费电影网| 一本色道久久综合狠狠躁的推荐 | 在线播放91灌醉迷j高跟美女| 亚洲va欧美va人人爽午夜| 日韩美女视频在线| 国产综合久久久久影院| 国产精品久久毛片a| 91福利在线观看| 韩国v欧美v亚洲v日本v| 亚洲图片另类小说| 日韩一卡二卡三卡国产欧美| 久久精品国产久精国产爱| 99久久国产综合精品色伊| 蜜臀精品久久久久久蜜臀 | 日韩免费观看2025年上映的电影 | 国产精品影视网| 成人午夜看片网址| 国产一区二区三区免费播放| 麻豆视频观看网址久久| 美女免费视频一区| 国产精品一区二区久久精品爱涩 | 成人午夜av在线| 不卡免费追剧大全电视剧网站| 成人小视频在线| 99re这里只有精品6| 欧美日韩美少妇| 欧美精品黑人性xxxx| 欧美精品一区二区在线播放 | 精品久久久三级丝袜| 久久九九国产精品| 亚洲综合男人的天堂| 天天av天天翘天天综合网| 亚洲国产日韩综合久久精品| 日韩午夜精品视频| 精品久久久久久久久久久久久久久久久 | 国产精品久久久久国产精品日日| 成人黄色免费短视频| 久久av资源网| 精品亚洲国内自在自线福利| 国产最新精品精品你懂的| 国产精品影视天天线| 国产福利一区二区三区视频 | 色视频欧美一区二区三区| 欧美影视一区在线| 在线电影国产精品| 久久久久国色av免费看影院| 1000精品久久久久久久久| 日本女人一区二区三区| 91高清在线观看| 欧美一区二区视频在线观看2020| 国产精品盗摄一区二区三区| 男人的天堂亚洲一区| 蜜臀精品一区二区三区在线观看 | 久久综合一区二区| 日本在线不卡视频| 秋霞电影一区二区| 国产精品一区二区黑丝| 日韩一区二区三区电影在线观看 | 午夜精品久久久久久久久久| 日韩二区三区在线观看| 国产精品99久久久久久似苏梦涵 | 久久网站热最新地址| 亚洲欧美日韩精品久久久久| 一区二区三区日韩欧美精品| 一区二区三区在线播放| 国产一区二区三区电影在线观看| 国产高清久久久| 中文字幕一区三区| 亚洲卡通欧美制服中文| 亚洲成av人片一区二区三区| 成年人国产精品| 日韩你懂的在线播放| 亚洲第一av色| 99国产精品国产精品久久| 国产婷婷色一区二区三区四区| 亚洲综合偷拍欧美一区色| 97久久精品人人爽人人爽蜜臀| 日韩视频免费观看高清完整版在线观看 | 蜜臀久久99精品久久久画质超高清 | 久久精品国产成人一区二区三区| 国产一区二区三区在线观看精品| 69av一区二区三区| 爽好多水快深点欧美视频| 色综合久久综合网欧美综合网 | 国产成人在线免费| 欧美大片在线观看| 亚洲一二三级电影| 在线欧美小视频| 日韩不卡免费视频| 日韩一级片在线播放| 男人的j进女人的j一区| 欧美一区二区三区四区视频| 日本亚洲天堂网| 日韩欧美一区二区久久婷婷| 国产一区二区不卡在线| 国产精品情趣视频| 欧美私模裸体表演在线观看| 日本不卡视频在线观看| 久久色在线视频| 99精品视频在线观看免费| 亚洲风情在线资源站| 日韩欧美精品三级| 99免费精品在线观看| 亚洲午夜激情av| 欧美成人一区二区三区片免费| 国产精品中文欧美| 天天综合日日夜夜精品| 2020国产精品| 欧美卡1卡2卡| 91麻豆高清视频| 韩国精品在线观看| 日韩在线卡一卡二| 亚洲伦在线观看| 久久精品夜色噜噜亚洲aⅴ| 欧美三级视频在线播放| 国产成人av一区| 久久国产综合精品| 国产伦精品一区二区三区免费迷 | 成人av小说网| 免费在线观看不卡| 亚洲一区二区三区美女| 国产亚洲美州欧州综合国| 欧美色网一区二区| 国产精品久久久久aaaa樱花| 在线视频综合导航| 一本色道久久综合亚洲91| 成人av在线一区二区三区| 国产精品一品二品| 精品综合久久久久久8888| 日本不卡高清视频| 日韩高清电影一区| 久久99久国产精品黄毛片色诱| 一区二区三区欧美视频| 国产精品久久毛片av大全日韩| 精品国产人成亚洲区| 久久日一线二线三线suv| 久久久噜噜噜久久人人看| 欧美国产精品专区| 亚洲一区二区三区在线看| 同产精品九九九| 国产成人精品一区二区三区四区 | 精品少妇一区二区三区在线播放 | 亚洲一区二区三区四区在线观看 | 555www色欧美视频| 中文在线一区二区 | 91黄色免费看|