正則表達(dá)式

一幢泼、\d毁习,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分別是什么?

  • \d:查找數(shù)字
  • \w:查找單詞字符(字符缰贝、數(shù)字嘱么、下劃線)
  • \s:查找空白字符(空格、tab柒傻、換行孝赫、回車)。
  • [a-zA-Z0-9]: 查找任何從 0 至 9 的數(shù)字和查找任何從大寫 A 到大寫 Z 的字符和查找任何從大寫 A 到小寫 z 的字符红符。
  • \b:匹配單詞邊界青柄。
  • .:查找單個字符,除了換行和行結(jié)束符预侯。
  • *:匹配任何包含零個或多個 n 的字符串致开。貪婪模式
  • +:匹配任何包含至少一個 n 的字符串。
  • ?:匹配任何包含零個或一個 n 的字符串萎馅。非貪婪
  • x{3}: 匹配包含至少 3個 x 的序列的字符串双戳。
  • ^$:只有當(dāng)字符又是頭又是尾的時候才符合;

二 糜芳、貪婪模式和非貪婪模式指什么?

  • 貪婪模式 : 正則表達(dá)式匹配中飒货,盡可能匹配多的字符串,瀏覽器默認(rèn)貪婪模式峭竣。
    非貪婪模式:正則表達(dá)式匹配中塘辅,盡可能少的匹配。如:n?

三邪驮、代碼題

1.寫一個函數(shù)trim(str)莫辨,去除字符串兩邊的空白字符

var str = ' i want to play basketball ';
        function trim(str){
            var str2 = str.replace(/^\s/,'');
            var str3 = str2.replace(/\s$/,'');
            return str3;
        }
        trim(str);

2.使用實(shí)現(xiàn) addClass(el, cls)傲茄、hasClass(el, cls)毅访、removeClass(el,cls)

function addClass(el, cls){
 if(!hasClass(el, cls)){
 el.className += ' ' + cls
 }
}
function hasClass(el, cls){
 var reg = new RegExp('(\\s|^)' + cls + '(\\b|$)','g');
 return reg.test(el.className);
}
function removeClass(el, cls){
 var reg = new RegExp('(\\s|^)' + cls + '(\\b|$)','g');
 if(hasClass(el, cls)){
 el.className = el.className.replace(reg,'')
 }
}

3.寫一個函數(shù)isEmail(str)沮榜,判斷用戶輸入的是不是郵箱

        var str1 = 'way_ne@qq.com';
        var str2 = 'way_ne@163.cn.net';
        var str3 = 'way_ne@qq.com.cn.net';
        

        function isEmail(str){
            var email = /^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/;
            if(email.test(str)){
                console.log('對的,這是一個郵箱地址')
            }else{
                console.log('Oh,is not an avaliable email address')
            }
        }
        isEmail(str1);
        isEmail(str2);
        isEmail(str3);
測試

4.寫一個函數(shù)isPhoneNum(str)喻粹,判斷用戶輸入的是不是手機(jī)號

        var str1 = '1325869482';
        var str2 = '15444353642';
        var str3 = '22424245244';
        var str4 = '224242452443';
        function isPhoneNum(str){
            var phone = /^[1][356789](\d+){9}$/;
            if(phone.test(str)){
                console.log('is phone numer')
            }else{
                console.log('unavailable number')
            }
        }
        isPhoneNum(str1);
        isPhoneNum(str2);
        isPhoneNum(str3);
        isPhoneNum(str4);
測試

5.寫一個函數(shù)isValidUsername(str)蟆融,判斷用戶輸入的是不是合法的用戶名(長度6-20個字符,只能包括字母守呜、數(shù)字型酥、下劃線)

        var str1 = 'way_ne';
        var str2 = 'jimmybaby123';
        var str3 = '123456789123456789123';
        var str4 = 'tommy-kitty';
        function isValidUsername(str){
            var userName = /^(\w){6,20}$/;
            if(userName.test(str)){
                console.log('avaliable username');
            }else{
                console.log('unavailable username');
            }
        }
        isValidUsername(str1);
        isValidUsername(str2);
        isValidUsername(str3);
        isValidUsername(str4);
測試

6.寫一個函數(shù)isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個字符,包括大寫字母查乒、小寫字母弥喉、數(shù)字、下劃線至少兩種)

 var str1 = 'luekcni134';
        var str2 = 'DSNCsnc28ld';
        var str3 = '1231121211';
        var str4= 'lnd2e';
        function isValidPassword(str){
            if(str.length<6 || str.length>20){
                return false;
            }
            if(/[^A-Za-z_0-9]/.test(str)){
                return false;
            }
            if(/(^[a-z]+$)|(^[A-Z]+$)|(^_+$)|(^\d+$)/g.test(str)){
                return false;
            }
            return true;
        }
        isValidPassword(str1);
        isValidPassword(str2);
        isValidPassword(str3);
        isValidPassword(str4);
測試

7.寫一個正則表達(dá)式玛迄,得到如下字符串里所有的顏色(#121212)


var re = /#([0-9a-zA-Z]+){6}/g ;

var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 ";

console.log( subj.match(re) );  // #121212,#AA00ef
測試

8.下面代碼輸出什么? 為什么? 改寫代碼由境,讓其輸出hunger, world.

 //下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出hunger, world.
        var str = 'hello  "hunger" , hello "world"';
        //var pat = /".*"/g; 輸出 "hunger" , hello "world"貪婪模式下匹配全局的".*"只要兩邊界有引號的都會匹配上蓖议;
        var pat =  /".*?"/g; 
        // or
        // var pat = /"\w*"/;
        console.log(str.match(pat));

9.補(bǔ)全如下正則表達(dá)式虏杰,輸出字符串中的注釋內(nèi)容. (可嘗試使用貪婪模式和非貪婪模式兩種方法)

 str = '.. <!-- My -- comment \n test --> ..  <!----> .. ';
        //re = /<!--[\w\W]*?-->/g;  非貪婪模式
        re = /<!--[^>]*-->/g //貪婪模式
        console.log(str.match(re)); // '<!-- My -- comment \n test -->', '<!---->'

10.補(bǔ)全如下正則表達(dá)式

var re = /<[^>]+>/g //貪婪模式
var str = '<> <a href="/"> <input type="radio" checked> <b>'
console.log(str.match(re));// '<a href="/">', '<input type="radio" checked>', '<b>'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勒虾,隨后出現(xiàn)的幾起案子纺阔,更是在濱河造成了極大的恐慌,老刑警劉巖修然,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笛钝,死亡現(xiàn)場離奇詭異,居然都是意外死亡愕宋,警方通過查閱死者的電腦和手機(jī)婆翔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掏婶,“玉大人啃奴,你說我怎么就攤上這事⌒弁祝” “怎么了最蕾?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長老厌。 經(jīng)常有香客問我瘟则,道長,這世上最難降的妖魔是什么枝秤? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任醋拧,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丹壕。我一直安慰自己庆械,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布菌赖。 她就那樣靜靜地躺著缭乘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琉用。 梳的紋絲不亂的頭發(fā)上堕绩,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音邑时,去河邊找鬼奴紧。 笑死,一個胖子當(dāng)著我的面吹牛晶丘,可吹牛的內(nèi)容都是我干的绰寞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铣口,長吁一口氣:“原來是場噩夢啊……” “哼滤钱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脑题,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤件缸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后叔遂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體他炊,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年已艰,在試婚紗的時候發(fā)現(xiàn)自己被綠了痊末。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡哩掺,死狀恐怖凿叠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚼吞,我是刑警寧澤盒件,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站舱禽,受9級特大地震影響炒刁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜誊稚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一翔始、第九天 我趴在偏房一處隱蔽的房頂上張望罗心。 院中可真熱鬧,春花似錦城瞎、人聲如沸渤闷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爷贫,卻和暖如春认然,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漫萄。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工卷员, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腾务。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓毕骡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岩瘦。 傳聞我的和親對象是個殘疾皇子未巫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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

  • 初衷:看了很多視頻、文章启昧,最后卻通通忘記了叙凡,別人的知識依舊是別人的,自己卻什么都沒獲得密末。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,009評論 0 20
  • 1. \d握爷,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分別是什么? \d查找數(shù)字。如...
    黃露hl閱讀 556評論 0 1
  • 問答 \d严里,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分別是什么?答:\d 查找數(shù)...
    饑人谷_桶飯閱讀 295評論 0 1
  • \d新啼,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^、$分別是什么? \d:查找數(shù)字\w:...
    塊壘閱讀 373評論 0 0
  • 問答 一刹碾、\d燥撞,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分別是什么? \d:查找數(shù)...
    夏意與寒蟬閱讀 431評論 0 0