您的位置:首页 > 其它

正则表达式

2017-08-05 15:24 204 查看
正则表达式

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

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

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
4000
(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: