正则表达式
1.创建—两种方法
var reg1 = new RegExp(‘abc’);
var reg2 = /abc/;
打印出都是/abc/;
2.匹配规则
<1>.元字符
除了字面量字符以外,还有一部分有特殊含义,不代表字面意思,称之为“元字符”。如果匹配它们本身,就需要在它们面前加上反斜杠进行转义。
点字符 . :匹配除了回车\r,换行\n,行分隔符\u2028,段分隔符\u2029以外的所有字符
表示任意一个字符:
var str = “…brother…”;
var reg = /br.t/;
console.log(reg.test(str));
位置字符:
^ 表示字符串开始的位置
$ 表示字符串的结束位置
var reg = /^hello/;// ^代表必须以hello开头
// var str2 = “hello world!”;//true
var str2 = “world!”;//false
console.log(reg.test(str2));
竖线符号 | :
或关系,a|b:表示匹配a或b;
var reg = /^hey|ok$/;//以hey开头,或者以ok结尾
以上:如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次
<2>.重复类:
模式的精确匹配次数,用{}表示
{n} 表示恰好重复n次;
{n,} 表示至少重复n次;
{n,m} 表示重复不少于n次,不多于m次
<3>.量词符:
?:表示某个模式出现0次或1次,等同于{0,1}—最多1次
*:表示某个模式出现0次或多次,等同于{0,}—无影响
+:表示某个模式出现1次或多次,等同于{1,}—至少一次
<4>.字符类:
用[]表示,有一系列字符可供选择,只要匹配其中一个就可以;
脱字符 ^ :如果方括号内第一个字符是[ ^],则表示除了字符类中的字符,其他字符都可以匹配,如:[ ^abc]表示除了a,b,c之外都可以匹配;
连字符 - :对于连续序列的字符,连字符用来提供简写形式,表示字符的连续范围,如:[abc]可写成[a-c] , [0123456789]可写成[0-9] , [A-Z]表示26个大写字母,中文[\u4e00-\u9fa5] 这个区间代表了所有的中文汉字
3.字面量
var reg = /hello/;
var str1 = “hello world!”;
// 正则表达式test()方法:返回一个布尔值,方法用于匹配字符串,
//匹配成功返回true,失败返回false;
console.log(reg.test(str1));//true
4.g:使中间的空格变为一个空格,加上g代表一直匹配,不加g就会只匹配到第一个就结束了;
正则表达式区分大小写,加上i表示忽略大小写
5.匹配方法:
replace(): 用于替换,接受两个参数,第一个是匹配项,第二个可以是字符串或是一个函数