首页 > 代码库 > 正则表达式

正则表达式

正则表达式在我们做写js逻辑判断的时候常常用到。和大家分享一下,有什么问题可以私密我。

首先是正则表达式的声明。

var str = ‘dKJd6DKj69ds dklj6dLL/SE659lds‘;
var
reg = /d/; //这种声明方法一定要将两个“/”分开来,在两个“/”之间写的是检索的内容,类似于我们引号的写法;
var reg=new RegExp(‘d‘); //正则表达式也可以看作是一个对象

方法的使用:

console.log(reg.test(str)); //test()方法,返回值为boolean值, “字符串”.test(reg);
console.log(reg.exec(str)); //用来检索字符串中指定的值,返回的结果如果能找到指定的值,那么结果就是我们检索的字符串,如果找不到,返回的结果为null; console.log(str.match(reg));//match()方法,返回值为匹配的数组对象。使用typeof()检测类型为object。
//同时可以使用console.log(str.match(reg)[0])得到对应的值,可以看出匹配到的类型是数组类型。

正则表达式的类型(参数的使用)

(1)正则表达式的参数常用的有两个,分别是i和g;

       i :表示的是不区分大小写的匹配;

       g :表示的是全局匹配;

var reg = /d11/gi; 
var reg1=new RegExp(‘d‘,‘gi‘); 
//多个参数一起使用,参数与参数之间是可以直接连写,不需要用其他的字符来分隔的;

 (2)search()

var part = /hello/gi;
var str = ‘charles,hello,hello,world!‘;
console.log(str.search(part));
//search()方法:查找检索的字符串在原字符串中的位置,返回的结果是一个数值,如果存在,则返回具体的位置,如果不存在,则返回值-1;这与我们前面学的内置对象中的字符串对象的indexOf()方法一致;记住是从第0个开始算的

 

(3)replace()

var reg = /\d/gi;  //所有数字
console.log(str.replace(reg,"#"));
//替换对应规则的字符串为#

 

(4)[]表示在这个范围内

var reg = /[d-k]/gi;   //表示字母d到k之间的字符,同时也支持数字如 [0-9]
var reg = /[^d-k]/gi;   //^表示不包含
var reg = /[djkp]/gi;  //表示指定的字符串

 

(5)|表示或者的意思,不是||哦

var reg = /[d]|[k]/gi; 

 

(6).号只能代替一个字符

var reg = /d.jd/gi;  //搜索d*jd字符串

 (7)$ 表示以什么结尾

var reg = /4$/gi;  //表示以4结尾的字符串

 

var reg = /er+/gi; //+表示r出现一次或者一次以上,想要表示[er]
var reg=/er{2}/gi //表现r连续出现两次,可匹配errerrr

 

 (8) ?

当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",‘o+?‘ 将匹配单个 "o",而 ‘o+‘ 将匹配所有 ‘o‘。

(9)\

      \w表示的是查找单词字符;而\W表示的是查找非单词字符;

              \d表示的是查找数字;\D表示查找非数字;

              \s表示的是查找空白字符;\S表示查找非空白字符;

              \b表示的是匹配单词边界;\B表示匹配非单词边界;

    

(10)

1、正则调试工具:

       http://www1.w3cfuns.com/tools.php?mod=regex

 

正则表达式