记性很差的人,老是容易把记住的东西忘记掉!为了之后忘记的时候可以更快的找到并复习,最好仍是作笔记!好记性不如赖笔头嘛!正则表达式
1. Match函数数组
使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串函数
原型:stringObj.match(regExp)索引
参数:字符串
stringObj 必选项,须要去进行匹配的字符串
RegExp 必选项,指定的正则表达式
返回值:若是没有使用g(全局匹配)选项,则返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,若是使用g选项,则返回全部匹配的字符串组成的数组input
示例1:
var str = “aaabbbcccaaabbbccc”;
var res = str.match(/aaa/); //没有使用g选项
console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ] 第一个表示匹配的字符串;第二个表示匹配的字符串坐在的索引位置,从0开始计算;第三个表示原始字符串;
示例2:
var str = “aaabbbcccaaabbbccc”;
var res = str.match(/aaa/g); //使用g选项,全局匹配
console.log(res); //输出[ 'aaa', 'aaa' ] 全部匹配的字符串组成的数组 原型
2.exec函数string
使用指定的正则表达式模式去字符串中查找匹配项,并以数组形式返回,若是未查找到则返回nullit
原型:regExp.exec(stringObj)console
参数:
regExp 必选项,表示指定的正则表达式模式
stringObj 必选项,表示须要查找的字符串
返回值:不管有无g选项,都返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,可是该方法能够返回子匹配项,是match所不能及的
示例1:
var str = “aaabbbcccaaabbbccc”;
var regExp = /aaa/; //未使用g选项
var res = regExp .exec(str);
console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]
示例2:
var str = “aaabbbcccaaabbbccc”;
var regExp = /aaa/g; //使用g选项
var res = regExp .exec(str);
console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]
示例3:
var str = “aaabbbccc1234aaabbbccc”;
var regExp = /ccc([0-9]+)aaa/;
var res = regExp .exec(str);
console.log(res); //输出[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbccc' ] 第一个表示整个正则表达式所匹配的内容;第二个表示()内容的子表达式所匹配的内容;第三个和第四个同上
示例4:
var str = “aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;
var reg = /ccc([0-9]+)aaa/;
var res = reg.exec(str);
console.log(res); //输出同示例三,由于exec只返回第一个匹配的字符串,若是想所有返回,则须要借助while循环和g参数来实现,以下
var str = “aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;
var reg = /ccc([0-9]+)aaa/g;
while(res = reg.exec(str)){
console.log(res);
}
//输出以下:
[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ][ 'ccc5678aaa', '5678', index: 28, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ]
//使用这个方法时切记加上g选项,不然while循环将没法跳出,每次都循环第一个匹配项,致使死循环,可能卡死!
3.test函数
原型:regExp.test(str)
参数:regExp表示正则表达式模式 stringObj表示须要进行匹配的字符串
返回值:布尔类型,匹配则返回true,不然false
示例1:
var str = “aaabbbcccaaabbbccc”;
var reg = /[a-z]+/;
var res = reg.test(str);
console.log(res); //输出true
示例2:
var str = “aaabbbcccaaabbbccc”;
var reg = /[0-9]+/;
var res = reg.test(str);
console.log(res); //输出false
//该函数通常用来检测某字符串是否符合指定的规则
4.search函数
原型:stringObj.search(regExp)
参数:regExp表示正则表达式模式 stringObj表示须要进行匹配的字符串
返回值:返回第一个匹配的字符串所在的位置(偏移量),从0开始
示例1:
var str = “aaabbbcccaaabbbccc”;
var reg = /ccc/;
var res = str.search(reg);
console.log(res); //输出 6
5.replace函数
原型:stringObj.replace(regExp, replaceText)
参数:regExp表示正则表达式模式,stringObj表示须要进行匹配的字符串,replaceText表示替换成该文本内容,replaceText也能够是返回字符串的一个函数
返回值:返回替换以后的字符串
示例1:
var str = “aaabbbcccaaabbbccc”;
var reg = /aaa/;
var res = str.replace(reg, ’111′);
console.log(res);//返回111bbbcccaaabbbccc ,只替换第一个匹配项,若须要替换全部则须要使用g选项
5.split函数
原型:stringObj.split([separator[, limit]])
参数:separator表示分隔符(此处也能够是正则表达式),stringObj表示须要进行匹配的字符串,limit用来限制返回数组元素的个数
返回值:返回分割后的数组
示例1: var str = “aaa,bbb,ccc”; var reg = /,/; var res = str.split(reg); console.log(res); //输出[ 'aaa', 'bbb', 'ccc' ] //其实这里能够简单的写为var res = str.split(“,”); 示例2: var str = “aaa,bbb:ccc@ddd#eee”; var reg = /[,:@#]/; var res = str.split(reg); console.log(res); //输出[ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ] 这才是用正则的强大之处 示例3. var str = “aaa,bbb:ccc@ddd#eee”; var reg = /[,:@#]/; var res = str.split(reg, 3); console.log(res); //输出[ 'aaa', 'bbb', 'ccc'] Ok今天的笔记到此为止,有什么不对的地方,欢迎指正!