正則

    //匹配字母a,i表示忽略大小寫,g表示全文檢索
    var re = new RegExp('a', 'ig');
    var re2 = /a/ig;

    var str = 'abc';
    //調用test方法進行匹配,匹配成功返回true,否則返回false
    // alert(re2.test(str));//true

    //匹配字母ac,忽略大小寫,全文檢索
    re2 = /ac/ig;
    // alert(re2.test(str));//false

    //匹配數(shù)字
    var re3 = /\d/;
    var str3 = '123';
    // alert(re3.test(str3));//true

    str3 = '123ab1';
    // alert(re3.test(str3));//true

    //匹配數(shù)字,全文檢索
    re3 = /\d/g;
    // alert(re3.test(str3));//true

    //匹配數(shù)字開頭并結尾
    re3 = /^\d$/;
    // alert(re3.test(str3));//false

    //匹配從開頭到結尾有一個或多個數(shù)字
    re3 = /^\d+$/;
    // alert(re3.test(str3));//false

    //匹配數(shù)字、字母、下劃線
    var re4 = /\w/;
    var str4 = '@asd';
    // alert(re4.test(str4));//true

    //匹配數(shù)字、字母、下劃線開頭
    re4 = /^\w/;
    // alert(re4.test(str4));//false

    str4 = 'as&d';
    // alert(re4.test(str4));//true

    //匹配從開頭到結尾有一個或多個數(shù)字、字母、下劃線
    re4 = /^\w+$/;
    // alert(re4.test(str4));//false

    var str5 = '123adfas894fasdfas15122dfad85';
    var re5 = /\d+/g;//全文檢索一個或多個數(shù)字
    var arr = str5.match(re5);
    // alert(arr);//123,894,15122,85

    var re6 = /d/;//匹配字母d
    // alert(str5.search(re6));//4//search相當于indexOf()函數(shù)

    //replace函數(shù)用于替換
    var str6 = str5.replace(re5, '*');
    // alert(str6);//*adfas*fasdfas*dfad*

    //正則表達式的替換功能
    var s = "Once111a22wolf,3always4a5wolf!";
    var regex = /\d+/g;
    var s2 = s.replace(regex, " ");
    // console.log(s2);

    /*疊詞*/
    //快快樂樂、高高興興
    regex = /(.)\1(.)\2/;//()表示分組,.表示任意字符,匹配第一組任意字符再出現(xiàn)一次、第二組任意字符再出現(xiàn)一次
    // console.log(regex.test("快快樂樂"));//true
    // console.log(regex.test("快樂樂樂"));
    // console.log(regex.test("高高興興"));//true
    // console.log(regex.test("快樂快樂"));

    //快樂快樂、高興高興
    regex = /(..)\1/;//匹配兩個任意字符再出現(xiàn)一次
    // console.log(regex.test("快樂快樂"));//true
    // console.log(regex.test("高興高興"));//true
    // console.log(regex.test("快快快快"));//true
    // console.log(regex.test("快快樂樂"));

    //疊詞切割
    // s = 'sdqqfgkkkhjppppkl';
    // regex = /(.)\1+/;
    // var arr = s.split(regex);
    // console.log(arr);//由于()中的是子表達式,會導致保留一個疊詞字母,不符合要求

    s = 'sdqqfgkkkhjppppkl';
    regex = /(.)\1+/g;//匹配疊詞,即多個重復的字母
    var s2 = s.replace(regex, " ");//將疊詞替換為空格
    var arr = s2.split(' ');//再按照空格進行切割
    // console.log(arr);//返回["sd","fg","hj","kl"],符合要求

    //字符串替換
    var s = "我我....我...我.要...要要...要學....學學..學.編..編編.編.程.程.程..程";
    var s2 = s.replace(/\.+/g, "");//刪除所有的點
    // console.log(s2);
    var s3 = s2.replace(/(.)\1+/g, "$1");//全文檢索疊詞,替換為單個字符,例如多個“我”替換成一個“我”
    // console.log(s3);

    //提取手機號
    //regex = /^1[3578]\d{9}$/;手機號的正則,只能匹配17688888888
    var s = '我的手機號碼是17688888888,曾經(jīng)用過13187654321,還用過13512345678';
    var regex = /1[3578]\d{9}/g;//第一位是1,第二位是3578中的一個,后面9位是任意數(shù)字,并全文檢索
    var arr = s.match(regex);//match方法返回匹配成功的數(shù)組
    console.log(arr);//["17688888888","13187654321","13512345678"]
</script>
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容