//匹配字母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ā)布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 最近新用到了一個正則:關于替換大量注釋 /\*.*\*/ #pragma mark 驗證手機號 - (BOOL)v...
- 溫馨提示:文章很長很長,保持耐心,必要時可以跳著看,當然用來查也是不錯的。 正則啊,就像一座燈塔,當你在字符串的海...
- 正則表達式 前言 正則表達式應用廣泛,在絕大多數(shù)的編程語言都可以完美應用,在Linux中,也有著極大的用處。使用正...
- 正則表達式 驗證數(shù)字格式 非負數(shù) 小數(shù)點后保留兩位 ,正則式如下:^(?!0+(?:.0+)?$)(?:[1-9...