为什么要有这个正则表达式:因为查找是一个比较复杂的东西,我们更加准确快速找到自己想要的。
什么是正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
定义规则:1、使用/规则/修饰符 修饰符可以省略
var patt = /hellocooldog/i;
2、新创建一个RegExp对象,给两个参数分别为规则和修饰符,修饰符可以省略
var patt = new RegExp("//hello/","i")
var str = "HelloCoolDog"; var patt1 = /hellocooldog/i; var result = str.search(patt1); document.write(result); //i 不区分大小写
从找到的下一个下标开始再继续往后查找,一直到字符串结束
var patt2 = /o/g; //全局查找 var result = str.replace(patt2,"O"); document.write(result);
[Hel]:从里面字符中任意一个去匹配字符串
[0-9]:匹配任意一个数字
var str = "1H2elo3lo4C5o6o7l8D9og"; var patt1 = /[0-9]/g; var result = str.match(patt1); document.write(result);
[a-z]:匹配所有小写字母
[A-Z]:匹配所有的大写字母
(a|x):匹配a或者x,a也能用[]来代替
var str = "1H2elo3lo4C5o6o7l8D9og"; var patt2 = ([a-z]|[A-Z]);
\w :单词字符 包括所有字母和数字和下划线 w是word的缩写
var patt = /\w/g;//word
\s : 空格 s是space的缩写
var patt = /\s/g;//space空格的缩写 var result = str.replace(patt,"&");
\d : 数字 digital的缩写
var patt = /\w/g;//word
o+: 找到一个或者多个o
var patt = /o+/;
o*: 找到0个或者多个o
var patt1 = /oo*/g;//匹配0个或者多个
o?: 找到0个或者1个
var patt2 = /oo?/g;//匹配0个或者1个
o{3}:指定具体的个数只有3个
var patt = /o{2}/g;//指定了o的个数
o{2,3}:指定一个有范围的区间最少2个最多3个
var patt1 = /o{2,3}/g;//指定至少2个最多3个
o{2,}:最少2个
var patt2 = /o{2,}/g;//最少2个
^: 必须以后面的内容开头
$: 以什么内容结束
案例: 实现对输入的日期判断是否合格 var num = prompt("请输入日期,_(月)_(日)"); var patt2 = /^([0][1-9]|[1][0-2])([0][1-9]|[1-2][0-9]|[3][0-1])$/;//判断为0 var result1 = num.match(patt2); document.write(result1);正则表达式的新写法:如果你要判断一个数组的的某个元素,你可以是用patt = /""+str[i]+""/;这样子就可以对字符串str的某个元素进行刷选。