文章目录
正则表达式创建方法
正则表达式是js中一种对象,如一下代码
//1、直接量
var reg=/fsggfdb/
//2、构造方法RegExp()
var reg=new RegExp("gg")
1、正则对象方法
var reg=/ab/g;
var str="abababab";
reg.exec(str);//["ab"],尽管具有global属性,仍然只返回一个"ab"
//再继续
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
reg.exec(str);//null
reg.exec(str);//["ab"]
reg.exec(str);//["ab"]
2、 三个属性i,g,m
i —>(ignoreCase )执行匹配时忽略大小写
g—>(global)执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m—>(multiline)执行多行匹配
//属性i:忽略大小写
// var reg = /a/i
// var str = "fsgrsA666"
// var res = reg.test(str)
// console.log(res); //true
//属性g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
var reg=/ab/;
var str="ababababab";
str.match(reg);//["ab"],只查找到第一个匹配值便返回
reg=/ab/g;
str.match(reg);//["ab","ab","ab","ab","ab"],全局查找,把所有匹配值均返回
//属性m:执行多行匹配
var reg=/a/g;
var str="abcdea";
str.match(reg);//["a","a"]
reg=/^a/g;//插入符^指的是以字母a为开头
str.match(reg);//["a"]
str="abcde\na";
str.match(reg);//["a"],还没有多行匹配属性
reg=/^a/gm;
str.match(reg);//["a","a"]
3、^a :以a开始
var reg = /^a/i
var str = "qabAcdefAg6acbb66"
var str1 = "aaafedg"
var re = reg.test(str)
var re1 = reg.test(str1)
console.log(re, re1) //false true
4、.js$ :以.js结尾
//.js$ 以.js结尾
var reg = /.js$/i
var str = "qabAcdefAg6ac.jsbb66a.js"
var str1 = "fgsjgfsgf.html"
var re = reg.test(str)
var re1 = reg.test(str1)
console.log(re, re1) //true false
4、中括号
一个中括号代表一位,中括号里边的内容代表的是这一位可以取值的范围
①[a-z] [0-9]
var reg = /[赵钱孙][0-9][abc]/g;
var str = "a钱9b赵8cd";
var arr = str.match(reg);
console.log(arr) //['钱9b', '赵8c']
②(x|y) 在括号里可以加入"|"表示"或"的意思
var reg = /\.(jpg|png)$/ //以.jpg 或者 .png结尾
//在括号里可以加入"|"表示"或"的意思
// \将特殊字符转义成普通字符便于匹配
var str = "qabAc89d84efAg6acbb66a.js"
var str1 = "feskufgsg.jpg"
var re = reg.test(str)
var re1 = reg.test(str1)
console.log(re, re1) //false true
③插入符^放到[]里边表示"非"的意思
var reg = /[^赵钱孙][云鹤][^(a-y)]/g;
var reg1 = /^[赵钱孙][云鹤][^(a-y)]/g;
var str = "钱鹤z赵云zd";
var arr = str.match(reg);
var arr1 = str.match(reg1)
console.log(arr, arr1) //null ['钱鹤z']
5、去掉字符串的头尾空格
// str.tirm()
var reg = /(^\s*)|(\s*$)/g
var str = " abc "
var re = str.replace(reg, "")
console.log("---" + re + "---") //---abc---
6、用正则表达式判断子串重复次数
var str = "helloabclo"
var reg = /l/g
var re = str.match(reg) //返回null 或者数组
console.log(re.length);
7、反引用
var reg1 = /([a-z])([1-9])\1\2/gi//([a-z])([1-9])([a-z])([1-9])
var str = "gjr3224441fjfjjjjjj3344a1a1"
console.log(str.match(reg1)); //['a1a1']