正则表达式

正则表达式

为什么要有正则表达式:因为查找是一个比较复杂的东西,我们需要更加准确快速的找到自己想要的。

什么是正则表达式:它可以定义一种字符串逻辑的方式,来和要查找的字符串匹配,进而找到自己想要的。

1、定义规则:

(1)使用  /规则/修饰符;

var patt = /HelloCoolDog/i;//i代表修饰符
(2)新创建一个RegExp对象,给两个参数,分别为规则和修饰符

var patt1 = new RegExp("HELLO","i");

2、常用的修饰符

(1)i:不区分大小写

var str = "HelloCoolDog";
//i 不区分大小写
var patt1 = /hellocooldog/i;//i代表修饰符
(2)g:全局匹配,从找到的下一个下标开始在继续往后查找,一直到字符串结束

var str = "HelloCoolDog";
 //g  执行全局查找(匹配)(查找所有匹配而非在找到第一个匹配后停止)
 var patt2 = /o/g;
3、字符模式

(1)[Hel]:从里面字符中任意一个去匹配字符串

var str = "HelloCoolDog";
var patt = /[Hel]/g;
(2)[0-9]:匹配任意一个数字

var str = "He678l1l9oCo2345olDog"; 
var patt1 = /[0-9]/g;
var result = str.match(patt1);
document.write(result);//6,7,8,1,9,2,3,4,5
(3)[a-z]:匹配所有小写字母

var str = "He678l1l9oCo2345olDog";
var patt2 = /[a-z]/g; 
var result = str.match(patt2);
document.write(result);//e,o,o,o,l,o,g
(4)[A-Z]:匹配所有大写字母

var str = "He678l1l9oCo2345olDog";
var patt3 = /[A-Z]/g;
var result = str.match(patt3);
document.write(result);//H,C,D
(5)(a|x):匹配a或x,a也能用[]来代替

var str = "He678l1l9oCo2345olDog";
var patt4 = /([a-z]|[A-Z])/g;
var result = str.match(patt4);
document.write(result);//H,e,l,l,o,C,o,o,l,D,o,g
4、常用的元字符

(1)\w:单词字符 包括所有字母、数字和下划线,w是word的缩写

var str = "He678l1l9oCo2345olDog";
 var patt = /\w/g;//word
 var result = str.match(patt);
 document.write(result);

(2)\s:空格, s是space的缩写

var str = " He678l1l9oCo2345olDog";
var patt = /\s/g;
var result = str.replace(patt,"&");
document.write(result);

(3)\d:数字, 是digital的缩写

var str = "He678l1l9oCo2345olDog";
var patt = /\d/g;
var result = str.match(patt);
document.write(result);
5、常用的量词

(1)n+:找到一个或者多个n

var str = "He678l1l9oCoo2345lDog";
var patt = /\oo+/;
var result = str.match(patt);
document.write(result);//oo
(2)o+:匹配一个或多个o

o*:匹配0个或多个o

o?:匹配0个或者1个o

var str = "He678l1l9ooooCoo2345lDog";
var patt = /\oo+/g;//匹配一个或多个
var patt1 = /\oo*/g;//匹配0个或者多个
var patt3 = /\oo?/g;//匹配0个或者1个
var result = str.match(patt);
document.write(result+"<br>");
var result = str.match(patt1);
document.write(result+"<br>");
var result = str.match(patt3);
document.write(result);

输出结果为:


(3)o{3}:指定具体的个数

o{2,3}:制定一个有范围的区间,最少2个最多3个

o{2, }:最少2个

输出结果为:


(4)^:必须以后面的内容开头

$:必须以什么内容结尾

6、RegExp常用的两种方法:

(1)Exec():返回的是找到符合正则表达式新的字符串

var patt = /\w+/;
var str = "hello word";
var result = patt.exec(str);//获得正则表达式,并付给一个新的字符串
var result = str.match(patt);
document.write(result);

(2)Test():返回true或者false,当字符串满足正则表达式是为true否则为false

var str = prompt("请输入密码:");
var patt = /([a-z]|[A-Z])\w{5,17}/;
if(patt.test(str)){
    document.write("输入正确!");
}else{
    document.write("输入错误!");
}

var isRight = patt.test(str);//用于校验
document.write(result);
最后写一个案例来验证日期:

var day = prompt("请输入日期:");
var patt = /^([0][1-9]|[1][0-2])([0][1-9]|[1][0-9]|[2][0-9]|[3][0-1])$/;

if(patt.test(day)){
    document.write("输入正确!");
}else{
    document.write("输入错误!");
}
var isRight = patt.test(day);//用于校验
document.write(result);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值