--------都是元字符,下面這些也能夠叫限定符(限定前面的表達式出現的次數)javascript
-----------------------分割線java
建立方式: (正則表達式的做用:匹配字符串的) 1.經過構造函數建立對象正則表達式
var reg = new RegExp(/\d{5}/); RegExp();//對象建立完畢--沒有正則表達式的對象
//調用方法驗證字符串是否匹配
var flag = reg.test("個人電話是10086");
console.log(flag);//true
複製代碼
2.經過字面量方式建立對象編程
var reg = /\d{1,5}/;
var flag = reg.test("個人幸運:888");
console.log(flag);//true
複製代碼
正則表達式中:bash
正則提取編程語言
// 1. 提取工資
var str = "張三:1000,李四:5000,王五:8000。";
var array = str.match(/\d+/g);
console.log(array);
// 2. 提取email地址
var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 二、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";
var array = str.match(/\w+@\w+\.\w+(\.\w+)?/g);
console.log(array);
// 3. 分組提取
// 3. 提取日期中的年部分 2015-5-10
var dateStr = '2016-1-5';
// 正則表達式中的()做爲分組來使用,獲取分組匹配到的結果用Regex.$1 $2 $3....來獲取
var reg = /(\d{4})-\d{1,2}-\d{1,2}/;
if (reg.test(dateStr)) {
console.log(RegExp.$1);
}
// 4. 提取郵件中的每一部分
//-----/([0-9a-zA-Z_.-]+)[@]([0-9a-zA-Z_-]+)(([.][a-zA-Z]+){1,2})/-------
var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/;
var str = "123123@xx.com";
if (reg.test(str)) {
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);
}
複製代碼
正則替換函數
// 1. 替換全部空白
var str = " 123AD asadf asadfasf adf ";
str = str.replace(/\s/g,"xx");
console.log(str);
// 2. 替換全部,|,
var str = "abc,efg,123,abc,123,a";
str = str.replace(/,|,/g, ".");
console.log(str);
//3. 替換空格
var str = " 哦買噶的 ,太幸福了 ";
str = str.replace(/\s+/g, "");
console.log("===" + str + "===");
//全部的h都替換成S
var str="HhpphH";//SSppSS
str=str.replace(/[h]/gi,"S");
console.log(str);
複製代碼
正則表達式的方法ui
// var str = "中國移動:10086,中國聯通:10010,中國電信:10000";
// var reg=/\d{5}/g;
// //經過正則表達式匹配這個字符串
// var array=reg.exec(str);
// console.log(array);
// console.log(reg.exec(str));
// console.log(reg.exec(str));
// console.log(reg.exec(str));//null
var str = "中國移動:10086,中國聯通:10010,中國電信:10000";
var reg=/\d{5}/g;
//經過正則表達式匹配這個字符串
var array=reg.exec(str);
while (array!=null){
//輸出匹配的內容
console.log(array[0]);
array=reg.exec(str);
}
複製代碼