//字面量方式
? ? // let reg = /\d/;
? ? //實(shí)例創(chuàng)建方式
? ? // let reg = new RegExp("");
? ? //正則的兩種創(chuàng)建方式是有區(qū)別的
? ? //在字面量方式中,//之間包起來的所有內(nèi)容都是元字符,有的具有特俗的意義,大部分都是代表本身含義的普通的元字符
? ? let name = "name";
? ? let reg11 = /^\d+"+name+"\d+$/;
? ? console.log(reg11.test("20103name2345"));//false
? ? console.log(reg11.test('2334"""nameeee"2016"'));//true
? ? //需要用字符串拼接的方式創(chuàng)建正則,只能使用實(shí)例
? ? let reg12 = new RegExp("^\\d+" + name + "\\d+$");
? ? console.log(reg12.test("20102name0044"));//true
? ? //字面量方式實(shí)例創(chuàng)建的方式在正則中的區(qū)別
? ? //1.字面量方式中出現(xiàn)的一切都是元字符,所有不能進(jìn)行變量值的拼接,而實(shí)例創(chuàng)建的方式是可以的
? ? //2.字面量方式中直接寫\d就可以,而在實(shí)例中需要把它轉(zhuǎn)譯 \\d
? ? /*
? ? ? 正則是用來處理字符串的
? ? ? 1.匹配:判斷一個(gè)字符串是否符合制定的規(guī)則,例如reg.test(str)
? ? ? 2.捕獲:把字符串符合正則規(guī)則的內(nèi)容捕獲到,例如reg.exec(str)
? ? */
? ? // console.log(RegExp.prototype)
? ? //在中括號(hào)中出現(xiàn)的所有字符都是代表本身意思的字符(沒有特殊的含義)
? ? // let reg = /^[.]$/;? ?
? ? // "|"符號(hào)使用
? ? let reg = /^18|19$/;
? ? console.log(reg.test("1"));//false
? ? console.log(reg.test("19"));//true
? ? console.log(reg.test("189"));//true
? ? //出現(xiàn)以上結(jié)果的原因是優(yōu)先級(jí)不是18|19,而是^或者$,改進(jìn)為/^(18|19)$/
? ? /*
? ? ? 1.有效數(shù)字的正則,有效數(shù)字為正數(shù) 負(fù)數(shù) 零 小數(shù)
? ? ? ? 實(shí)現(xiàn)思路:
? ? ? ? ? 1)小數(shù)的"."可以出現(xiàn)也可以不出現(xiàn),出現(xiàn)則后面一定跟著一位或多位的數(shù)字
? ? ? ? ? 2)最開始可以有"+"或者"-",也可以沒有二者
? ? ? ? ? 3)正數(shù)部分,一位數(shù)可以是0-9之間的一個(gè),多位數(shù)不能以0開頭
? ? */
? ? //\d表示1位數(shù),[1-9]\d+表示多位數(shù),\.\d+表示小數(shù)點(diǎn)及其后面的數(shù)字,[+-]?加號(hào)和減號(hào)可能出現(xiàn)或者不出現(xiàn)
? ? let significanceDigitReg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;