javascript正则表达式

时间:2022-12-21 18:48:34

正则表达式

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

什么是正则表达式:它可以定义一种字符串逻辑的公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑

定义规则:

1、使用/规则/修饰符,修饰符可以省略

Var patt = /hellocooldog/i;

2、新创建一个RegExp对象,给两个参数分别为规则和修饰符,修饰符可以省略

Var patt = new RegExp(“//hello”,”i”);

常用的修饰符

i:不区分大小写

Var str = “HelloCoolDog”;

Var patt1 = /hellocooldog/i;

Var result = str.search(patt1);

Document.write(result);

g:全局匹配,从找到的下一个下标开始再继续往后查找,一直到字符串结束

Var patt2 = /o/g;

//全局查找

Var result = str.replace(patt2,”O”);

Document.write(result);

字符模式

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

var str = "HelloCoolDog";

    var patt= /[Hel]/g;//随机取一个

    varresult = str.match(patt);

   document.write(result);//H,e,l,l,l

[0-9]:匹配任意一个数字

var str = "1H2el3loCoo4lDog6";

    varpatt1 = /[0-9]/g;//随机取一个

    varresult = str.match(patt);

   document.write(result);//1,2,3,4,6

[a-z]:匹配所有小写字母

var str = "1H2el3loCoo4lDog6";

    varpatt1 = /[a-z]/g;//随机取一个ig可以一起用

    varresult = str.match(patt1);

   document.write(result);//e,l,l,o,o,o,l,o,g

[A-Z]:匹配所有大写字母

var str = "1H2el3loCoo4lDog6";

    varpatt1 = /[A-Z]/g;//随机取一个ig可以一起用

    varresult = str.match(patt1);

    document.write(result);//H,C,D

(a|x):匹配a或x,a也能用[]来代替

var str = "1H2el3loCoo4lDog6";

    varpatt1 = /[a-z]|[A-Z]/g;//随机取一个ig可以一起用

    varresult = str.match(patt1);

   document.write(result);//H,e,l,l,o,C,o,o,l,D,o,g

常用的元字符:

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

var str = "1H2el_3loCo_o4l+Do-g6";

    var patt= /\w/g;//word

    varresult = str.match(patt);

   document.write(result);

\s:空格,space的缩写

var str = " H2el_3loCo_ 4l+Do-g6";

    var patt= /\s/g;//space

    varresult = str.replace(patt,"&");

    document.write(result);

\d:数字 digital的缩写

Var patt = /\d/g;//digital 数字

常用的量词

o+:找到一个或多个o

var str ="1H2el_3loCoo_o4l&Doooog6";

    var patt= /oo+/g;

    varresult = str.match(patt);

   document.write(result);

        

o*:匹配零个或多个o

var str = "1H2el_3looCo_o4l&Doooog6";

    var patt= /oo*!/g;

    varresult = str.match(patt);

   document.write(result);

o?:零个或一个o

var str ="1H2el_3looCo_o4l&Doooog6";

    var patt= /oo?/g;

    varresult = str.match(patt);

   document.write(result);

o{4}:只会匹配找到的四个o

var str ="1H2el_3looCo_o4l&Doooog6";

    var patt= /o{4}/g;

    varresult = str.match(patt);

   document.write(result);

n{2,3}:最少两个,最多3个

var str ="1H2el_3looCo_o4l&Doooog6";

    var patt= /o{2,3}/g;//最少两个,最多3个

    varresult = str.match(patt);

    document.write(result);

o{2,}:最少2个

var str ="1H2el_3looCo_o4l&Doooog6";

    var patt= /o{2,}/g;

    varresult = str.match(patt);

   document.write(result);

^n:必须以后面的内容开头

var str = "1Hello huadian";

    var patt= /^[123]\w+/;

    varresult = str.match(patt);

   document.write(result);

n$:必须以前面的内容结尾

 

RegExp常用的两种方法

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

test():返回的true或者false当字符串满足正则表达式是为true否则为false。

var str = prompt("请输入密码");

    var patt= /([a-z]|[A-Z])\w{5,17}/;

   alert(patt.test(str));

   if(patt.test(str)){

        alert("您输入的密码正确");

    }else{

       alert("对不起,您输入的密码不符合规范");

    }