正则表达式的模式(规则)匹配(与字符串作比较)
正则表达式都是用来操作字符串的
1.什么是正则表达式
正则表达式是由普通字符(字母、数字等)和特殊字符(有特殊含义的字符,如.\等)组成的文字模式
该模式描述在查找文字主体时待匹配的一个或多个字符串,正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
使用正则的作用:查找、替换、数据有效性验证
2.创建正则表达式
1)字面量或直接量
/js/ //注意要写在左斜杠之间
/zz09_ ,;!@ 汉字/ //普通字符
2)构造函数
new RegExp()
3.如何匹配?
1)test方法,属于正则的方法,返回true false
var str = "I love js";
var pattern = /js/;
console.log(pattern.test(str));//true
2)exec方法,属于正则的方法,若匹配上,就将字符串放入数组并返回数组,未匹配上返回null
console.log(pattern.exec(str));//["js"]
默认情况下,正则区分大小写
var str = "I love Js";
var pattern = /js/;
console.log(pattern.exec(str));//null
3)修饰符
i == ignoreCase 忽略大小写
g == global 全局匹配
m == multiline 多行匹配
var str = "I love Js";
var pattern = /js/i;
console.log(pattern.exec(str));//["Js"]
修饰符可以组合,顺序不影响效果
var str = "I love Js";
var pattern = new RegExp("js","igm");
console.log(pattern.test(str));//true
4)创建方式的区别
字面量更简洁,一般较多用,但规则被写死无法改变;构造函数的规则可以通过变量传递,可通过变量改变正则的规则(模式)
var str = "I love Js";
var userInput = "love";
var pattern = new RegExp(userInput,"i");
console.log(pattern.exec(str));