正則

//正則:就是以個規(guī)則 用來處理字符串的一個規(guī)則

var reg =/\d/;

reg.exec("1"); //匹配符合的

//2如何創(chuàng)建一個正則

//字面量方式:

var reg = /\d/;

//實例創(chuàng)建方式:

var reg = new RegExp("");

//元字符

每一個正則表達(dá)式都是由元字符和修飾符組成的

元字符在 // 之前具有意義的一些字符

\: 轉(zhuǎn)義 字符, 轉(zhuǎn)義后面字符所代表的含義

^: 某一個元字符開始

$:某一個元字符結(jié)尾

//代表出現(xiàn)次數(shù)的量詞元字符

*:出現(xiàn)零到多次

+:出現(xiàn)1到多次

?:出現(xiàn)零次 或者一次

{n}: 出現(xiàn)n次

{n,}: 出現(xiàn)n到多次

{n,m}: 出現(xiàn) n到 m次

\n :匹配一個換行符

. : 除了\n以外的任意字符

一個簡單的驗證手機(jī)號的正則:11位數(shù)字,第一位是1

var reg = /^1\d{10}$/

():分組 - >把一個大正則本身劃分成幾個小的正則

1)改變默認(rèn)的優(yōu)先級

var reg = /^18 |19$/ ? ? ? //189 ? ?119 ? 19?

var reg = /^(18 |19)$/ ? ? //18 19

2)

var reg = /^(\d+)abc(\d+)$/

x|y: x 或者y中的一個

[xyz] : x或則y或則z中的一個

[^xyz]: 除了三個以外的任何一個字符

[a-z]:a-z中間的任意一個字符

[^a-z]:除了a-z中的任意一個字符

\d: 一個0-9之間的數(shù)字 \D:除了0-9之間的以外的任何字符

\b:一個邊界符

\w:數(shù)字 字母 下劃線中的任意一個字符[0-9a-zA-Z_]

\s :匹配一個空白字符 空格 一個制表符 換頁符

g ? ?(global) ? ? ? 全局匹配(會查找所有匹配誓竿,不會在查找到第一個匹配時就停止)改變了lastIdex的值到最新

i ? ? (ignoreCase) ? ? ? 執(zhí)行對大小寫不敏感的匹配

m ? ? (multiline) ? ? 執(zhí)行多行匹配

在中括號[ ] 出現(xiàn)的所有字符都是代表本身意思的字符 沒有特殊含義

1) 有效數(shù)字的正則

"."可以出現(xiàn)也可以不出現(xiàn),但是一旦出現(xiàn),后面必須跟著一位或者多為數(shù)字 ? .

也就是說”[]”代表的是一個字符集烤黍,”^”只有在字符集中才是反向字符集的意思

[] 中括號中不識別兩位數(shù) var reg = /^[12]$/; 1 or 2

var reg = /^[12-68]$/ ?1, 2-6中的一個, 8 三個中的一個

字面量方式和實例創(chuàng)建的方式在正則中的區(qū)別嫂丙?

1.字面量方式中出現(xiàn)的一切都是元字符规哲,所以不能進(jìn)行變量值的拼接唉锌,而實例方式可以

2.字面量方式中直接寫\d就可以, 而在實例中需要把它轉(zhuǎn)義\\d


age between 18~65 : var reg = /^(1[8-9] | [2-5]\d | 6[0-5])$/

verify email : var reg = /^[\w.-]+@[0-9a-zA-Z]+(\.[a-zA-z]{2,4}){1,2}$/;

中國標(biāo)準(zhǔn)真是姓名 2-4位漢字 : ?var reg = /^[\u4e00 - \u9fa5]{2,4}$/i

身份證號碼 : var reg = /^\d{17} (X| \d)$/ (根據(jù)身份證號碼提取信息)

正則的捕獲 var reg = /^(\d{2})(\d{4})$/

reg.exec ->正則的捕獲

1.捕獲到得內(nèi)容是一個數(shù)組

【捕獲的字符 腥放,index:開始位置绿语, ?input 原始字符】

2. 正則的懶惰性

捕獲第一個匹配的

lastindex 是正則每一次捕獲在的位置,默認(rèn)值是0

var ary=[];

var res = ?reg.exec(str);

while(res){

ary.push(res[0]);

res = reg.exec(str);

}

3.正則的貪婪性

我們默認(rèn)捕獲 符合最長的字符串

在量詞后面加一個种柑?

匹耕?的不同作用

放在一個普通的元字符后面代表出現(xiàn)0-1次 /\d?/

房子啊一個量詞的元字符后面是取消捕獲貪婪性/\d+?/

字符串中的match

var ary = str.match(reg);

match一次性捕獲所有成一個數(shù)組 match雖然比exec簡單稳其,但是在分組捕獲的情況下炸卑,match只能匹配到大正則的煤傍, 捕獲不到小正則.

正則的分組:

var reg = /^(\d{2})(\d{4})(\d{4})(?:\d{2})(\d{2})(\d{2})$/

1.改變優(yōu)先級

2.分組引用 var = /^(\w)\1(\w)\2$/ ?\1和第一個正則一模一樣 ?\2和第二個正則一模一樣

(?:)在分組中的意思是只匹配不捕獲

replace:把原有的字符替換成新的字符

在不使用正則的情況下,每當(dāng)執(zhí)行一次只能替換一個字符

str = str.replace(/zhufeng/g,"zhufengpeixun")

str = str.replace (/zhufeng/g, function(){

console.log(arguments[0]); ?// 每一次執(zhí)行匿名函數(shù)捕獲到的內(nèi)容

return "zhufengpeixun" //返回的內(nèi)容把每次大正則匹配捕獲的內(nèi)容都替換了

})

匿名函數(shù)的arguments 和 exec得到的數(shù)組是非常類似的,也同樣可以得到分組的正則的內(nèi)容

arguments[1] 獲取每一次執(zhí)行匿名函數(shù)我們正則捕獲的第一個分組中的內(nèi)容

RegExp.$1 獲取第一個分組捕獲的內(nèi)容

正則的捕獲: 正則的exec方法,字符串的match方法,字符串的replace方法

arguments[0] --> exec 捕獲的組的第一項

arguments[1] --> exec捕獲數(shù)組的index

arguments[2] --> exec捕獲組的input內(nèi)容

//queryURLParameter

var str = "http://kbs.sports.qq.com/kbsweb/game.htm?mid=10000&cid=1467086&app=1.0";

var reg=/([^?&=]+)=([^?&=]+)/g;

var obj={};

// var res = reg.exec(str);

// while(res){

// obj[res[1]] = res[2];

// res =? reg.exec(str);

// }

str.replace(reg,function(){

obj[arguments[1]] =arguments[2];

});

console.log(obj);

cookie = "id=123; username=yang; id=123; sex=1"

//如果現(xiàn)在要獲取id椅寺,正則表達(dá)式怎么寫蒋失?

//value值的表示方法 ([^;]*) 除了分號之外的任意字符重復(fù)任意次數(shù)

//結(jié)尾符號的判斷(;|$)

var cookie = "id=123; username=yang; sex=1";

var reg4 = /(^| )id=([^;]*)(;|$)/;//匹配某個cookie的正則

var arr = cookie.match(reg4);//match方法發(fā)揮數(shù)組

console.log(arr[2]);

//獲取usernama對應(yīng)的值

var reg5 = /(^| )username=([^;]*)(;|$)/;//獲取username的值

var arr2 = cookie.match(reg5);

console.log(arr2);//如果match方法沒有找到就會返回null [" username=yang;", " ", "yang", ";", index: 7, input: "id=123; username=yang; sex=1"]

console.log(arr2[2]);//數(shù)組中的第二個是就是 第二個分組對應(yīng)的值

//獲取某個cookie對應(yīng)的cookie

function getCookie(key) {

var str = "(^| )" + key + "=([^;])(;|$)";//[,,,]

var reg = new RegExp(str);

if (!arr)//arr數(shù)組為null match沒有在字符串中找到該cookie

{

return null;

}

return arr[2];//只需要數(shù)組中索引為2的值

}

document.cookie = "username=yang;";

document.cookie = "id=123";

alert(getCookie("color"));

alert(getCookie("username"));

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篙挽,一起剝皮案震驚了整個濱河市铣卡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌煮落,老刑警劉巖蝉仇,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沉迹,居然都是意外死亡害驹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摘刑,“玉大人刻坊,你說我怎么就攤上這事谭胚∥床#” “怎么了胡控?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵昼激,是天一觀的道長。 經(jīng)常有香客問我橙困,道長凡傅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任哼转,我火速辦了婚禮槽华,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庶溶。我一直安慰自己懂鸵,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布套像。 她就那樣靜靜地躺著终息,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柳譬。 梳的紋絲不亂的頭發(fā)上续镇,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音舅桩,去河邊找鬼雨膨。 笑死,一個胖子當(dāng)著我的面吹牛撒妈,可吹牛的內(nèi)容都是我干的排监。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挟阻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了峭弟?” 一聲冷哼從身側(cè)響起附鸽,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞒瘸,沒想到半個月后坷备,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡情臭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年省撑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俯在。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡竟秫,死狀恐怖跷乐,靈堂內(nèi)的尸體忽然破棺而出肥败,到底是詐尸還是另有隱情,我是刑警寧澤愕提,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布馒稍,位于F島的核電站,受9級特大地震影響浅侨,放射性物質(zhì)發(fā)生泄漏纽谒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一如输、第九天 我趴在偏房一處隱蔽的房頂上張望鼓黔。 院中可真熱鬧央勒,春花似錦、人聲如沸请祖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肆捕。三九已至,卻和暖如春盖高,著一層夾襖步出監(jiān)牢的瞬間慎陵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工喻奥, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留席纽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓撞蚕,卻偏偏與公主長得像润梯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子甥厦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • --------------------------正則的作用--------------------------...
    G_whk閱讀 620評論 1 5
  • 一纺铭、正則初體驗 在軟件開發(fā)中,不管是Java刀疙、C#舶赔、JS、OC....基本上都會接觸到正則谦秧,不過大多數(shù)人都對正則并...
    iceman_dev閱讀 2,661評論 9 28
  • 正則 1.什么是正則:用來操作字符串的規(guī)則竟纳; 正則就是用來操作(校驗,捕獲)“字符串”的 1)校驗:返回布爾值 t...
    web前端ling閱讀 569評論 0 0
  • 定義:用來處理字符串的規(guī)則 1疚鲤、匹配:判斷一個字符串是否符合我們制定的規(guī)則->test:reg.test(str)...
    RomainLiu閱讀 643評論 0 0
  • 初衷:看了很多視頻锥累、文章,最后卻通通忘記了集歇,別人的知識依舊是別人的揩悄,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,009評論 0 20