正则表达式

xiaoxiao2021-02-28  85

正则表达式

为什么要有这个正则表达式?

因为查找是一个比较复杂的东西,但是可以让我们更加准确快速找到自己想要的。

什么是正则表达式?

它可以定义一种字符串逻辑的公式,来和要查找的字符串做匹配,找到自己想要的。

定义规则:1.使用/规则/修饰符   修饰符可以省略

var patt = /hellocooldog/i;

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

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

常用的修饰符:

i:不区分大小写

var str = "HelloCoolDog"; //i 不区分大小写 var patt1 = /hellocooldog/i; var result = str.search(patt1); document.write(result);

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

验证时不加g,查找时加g

 var str = "HelloCoolDog";  var patt = /hellocooldog/i; //全局查找     var patt2 = /o/g;     var result = str.replace(patt2,"0");     document.write(result);

 

字符模式:

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

var str = "HelloCoolDog"; var patt = /[Hel]/g; //匹配字符模式 var result = str.match(patt); document.write(result);

 

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

var str = "H1e2l3l4oC5o6ol7D8o9g"; var patt1 = /[0-9]/g;//找到所有的数字 var result = str.match(patt1); document.write(result);

 

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

var str = "H1e2l3l4oC5o6ol7D8o9g"; var patt1 = /[a-z]/g;//找到所有小写字母 var result = str.match(patt1); document.write(result);

 

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

var str = "H1e2l3l4oC5o6ol7D8o9g"; var patt1 = /[A-Z]/g;//找到所有大写字母 var result = str.match(patt1); document.write(result);

 

(a|x):匹配a或者xa也能用[ ]来找

var str = "H1e2l3l4oC5o6ol7D8o9g";

var patt1 = /([a-z]|[A-Z])/g;

var result = str.match(patt1); document.write(result);

 

常用的元字符:

\w:单词字符  包括所有字母和数字和下划线

var str = "H1e2l3l4oC5o6ol7D8o9g"; //使用全局查找g var patt = /\w/g;//word var result = str.match(patt); document.write(result);

 

\s:空格   sspace的缩写

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

 

\d:数字

var str = "  H1e2l3l4oC5o6ol7D8o9g"; var patt = /\d/g;//digital的缩写,代表数字 var result = str.replace(patt,"&");  document.write(result);//所有数字都变为&

 

常用的量词:

o+:找到一个或者多个o

0*:找到0个或者多个o

0?:找到0个或者一个o

var str = "H1e2l3l4o0C5o6oool7D8o9g"; var patt1 = /oo+/g;//匹配一个或者多个o var patt2 = /oo*/g;//匹配0个或者多个o var patt3 = /oo?/g;//匹配0个或者1o var result1 = str.match(patt1); document.write(result1 + "</br>"); var result2 = str.match(patt2); document.write(result2 + "</br>"); var result3 = str.match(patt3); document.write(result3 + "</br>");

 

o{2}:指定具体的个数只有2

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

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

var str = "H1e2l3l4o0C5o6ooool7D8o9g"; var patt = /o{2}/g;//指定了o的个数 var patt1 = /o{2,3}/g;//指定至少2个最多3个的o的显示个数 var patt2 = /o{2,}/g;//指定至少2个的o的显示个数 var result = str.match(patt); document.write(result + "</br>"); var result1 = str.match(patt1); document.write(result1 + "</br>"); var result2 = str.match(patt2); document.write(result2 + "</br>");

 

^匹配的是字符的开头,在多行检索中,匹配的是一行的开头

$匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾 

 

RegExp:常用的两种方法:

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

var patt = /\w+/; var str = "good afternoon"; var result = patt.exec(str);

document.write(result);//good

 

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

var str = prompt("请输入密码:"); var patt = /^([a-z]|[A-Z]\w{5,17}$)/; if(patt.test(str)){     alert("您输入的密码正确");//true }else{     alert("您输入的密码不规范");//false }

转载请注明原文地址: https://www.6miu.com/read-61921.html

最新回复(0)