正则表达式

来源:互联网 发布:tensorflow 人脸比对 编辑:程序博客网 时间:2024/06/07 21:29

下面给大家介绍一下正则表达式

为什么有正则表达式?因为查找是一个比较复杂的东西,我们更加准确快速查找自己想要的
什么是正则表达式? 他可以定义一种字符串逻辑的公式,赖和要查找的字符串做匹配,找到自己想要的。
定义规则:
1.使用/规则/修饰符
var patt = /helloCoolDog/i;
2.新创建一个RegExp 对象,给两个参数分别为规则和修饰符
var patt1 = new RegExp("hello","i");
常用的修饰符:
i:不区分大小写
var patt = /helloCoolDog/i;
var result = str.search(patt);
document.write(result+"<br>");
g.全局匹配,从找到的下一个下标开始在连续往后查找,一直到字符串结束。
var patt2 = /o/g;//g:全局匹配
var result = str.replace(patt2,"o")
document.write(result+"<br>");
字符模式:
[Hel]:从里面字符串中任意一个去匹配字符串
[0-9]
var str = "H1el2l3o4C5o6o7l8D9og";
var patt1 = /[0-9]/gi;
var result = str.match(patt1);
[a-z]:匹配所有小写字母
[A-Z]:匹配所有大写字母
(a|x):匹配a或者x
var patt1 = /([a-z]|[A-Z])/gi
 

常用元字符:
\w :单词字符 包括所有字母和数字、下划线
\s: 空格 s是space的缩写
var str = " +=*%_%H1el2l3o4C 5o6o7l8 D9og";
var patt = /\s/g;
var result = str.replace(patt,"*");
document.write(result);
\d: 数字
var patt = /\d/g;
量词:
o+;找到一个或者多个
var patt = /o+/;//匹配一个或者多个
O*:找到0个或者多个
var patt2 = /oo*/;//匹配0个或者多个
0?:找到0个或者一个
var patt1 = /oo?///匹配0个或者一个
O{3}:指定具体的个数
var patt = /o{4}/g;//指定o的个数
O{2,3}:指定一个有范围的区间量,最少2个,最多3个
var patt1 = /o{2,3}/g;//指定至少2个,最多3个
O{2,}:var patt1 = /o{2,}/g;//指定至少2个,最多不限
^必须以后面的内容开头
$必须以  内容结尾
RegExp常用的两种方法
Exer():返回的是找到符合正则表达式亲的字符串
Test():返回的是布尔类型,当字符串满足正则表达式时为true,不满足为false,可用于验证信息
var str = prompt("请输入密码")
var patt = /[a-z]|[A-Z]\w(6,17)]/;
if(patt.test(str)){
    alert("密码正确")
}else{
    alert("密码不规范,请重新输入")
}
最后附图一张