一、初识正则表达式
正则表达式(regular Expression):RegExp();
1.用处:检索文本,按照我们指定的规则去实现,简单的模式匹配到单词、文字、符号、进行内容替换
2.基本用法:
//
RegExp();
3.模式:
/pattern/modifier
pattern(模式):你想怎么去进行匹配【规则】
modifier(修饰符):你想添加什么样的条件
4.如果匹配不到:返回空null;
5.对象的方法:
test():如果能够匹配到的话,返回true,如果匹配不到返回false
exec():如果能够匹配到的话,返回内容,如果匹配不到就返回空
match():如果能够匹配到的话,返回内容,如果匹配不到就返回空
//常规型:
var str = "hello";
var reg = /l/g; //g是全局匹配
console.log(reg.test(str)); //测试
console.log(str.match(reg)) //用正则表进行查找
var reg = new RegExp("h");
console.log(str.match(reg));
console.log(reg.test(str));
console.log(reg.exec(str));
二、元字符
1.\w:匹配单词(字母)、数字、_
\W:匹配非单词(字母)、非数字、非_
var str = "ABC";
var str = "1";
var str = "_";
var str = "-";
var reg = /\w/;
var reg1 = /\W/;
console.log(reg.test(str));
console.log(reg1.test(str));
2.\d:匹配数字
\D:匹配非数字
var str = "abc-1";
var reg = /\d/;
var reg1 = /\D/;
console.log(reg.test(str)); //true 母串里面有数字
console.log(reg1.test(str)); //true 母串里面有非数字
3.\s:匹配空格
\S:匹配非空格
var str = " "; //空格字符的字符串
var str = ""; //空字符串
var reg = /\s/;
console.log(reg.test(str1)); //匹配不到内容
console.log(reg.test(str)); //匹配到空格
4.\b:匹配单词边界
\B:匹配非单词边界
var str = "hello";
var reg = /\b/g;
var reg1 = /\B/g;
console.log(reg.test(str));
console.log(str.match(reg));
console.log(str.match(reg1));
三、转义字符
g为全局内容【匹配到整个母串】
特殊的转义字符:
\n 换行
. 匹配任意字符【匹配不到\n,\r】
\r 制表符
var str = "hello world";
var reg = /./g;
console.log(str.replace(reg, "xx"));
var str = "\\"; //第一个斜杠表示转义,第二个斜杠表示真正的\
var reg = /\\/;
console.log(reg.test(str));
四、量词:
{num} 正好有多少个
{num,} 匹配最少num个,最大无限个
{num1, num2} 匹配最少num1,最多num2个
var str = "aaaaaa";
var reg = /a/;
var reg1 = /a{6}/; //匹配是否有6个a
console.log(reg.test(str));
console.log(reg1.test(str));
var reg = /a{2}/;
var reg1 = /a{2,}/; //匹配最少2个,最大无限
console.log(reg.test(str));
console.log(reg1.test(str));
console.log(str.replace(reg1, "b"));
var reg = /a{2,5}/g; //匹配最少2个,最大5个
console.log(reg.test(str));
console.log(str.replace(reg, "b"));
^ 以什么开头
$ 以什么结尾
var str = "a88888d";
var reg = /^a/;
var reg1 = /d$/;
console.log(reg.test(str));
console.log(reg1.test(str));
//特殊情况:如果从零开始进行匹配
var str = "baaa";
var reg = /a{0,2}/;
console.log(reg.test(str));
console.log(str.replace(reg,"c"));
五、贪婪模式与惰性模式:
贪婪模式 条件*
惰性模式 条件?
{num}?
{num,}?
{num1,num2}?
var str = "123456789abc";
var reg = /\d*/;
console.log(str.match(reg));
var str = "123456789abc";
var reg = /\d?/;
console.log(str.match(reg));
var str = "123456789abc";
var reg = /\d{2,}?/; // \d满足数字条件,满足数量的条件?贪婪模式
console.log(str.match(reg));
六、修饰符:
g:全局匹配
i:忽略大小写进行匹配
m:换行匹配
var str = "hello world";
var reg = /./g;
console.log(str.replace(reg, "6"));
var str = "HELLOHELLO";
var reg = /hello/ig;
console.log(str.replace(reg, "6"));
网友评论