RegExp

作者: 橙紫龙 | 来源:发表于2017-09-17 13:52 被阅读0次

RegExp——封装一条正则表达式,并提供正则表达式执行验证和查找的API

我们需要在何时去使用这个API呢?大致分为两个情况。1、使用正则表达式来验证字符串格式时。2、即查找关键词内容,又查找关键词位置。

首先需要创建RegExp,创建也分为两个情况。

1、直接量创建。var reg=/正则表达式/ig        何时使用:如果正则表达式是固定不变的,就使用直接量来创建。如果此时出现字符冲突则加入\(反斜杠)   /  ->\/

2、用new。var reg=new RegExp("正则表达式","ig")      何时使用:如果正则表达式需要动态生成时,就使用new来创建RegExp对象。如果此时出现字符冲突时     \->\\          \"  \'

 RegExp有两套API,分别为:

查找关键字  ——  var arr=reg.exec(str)                                                                                                 即查内容又查关键字,在str中查找下一个满足reg要求的关键字。返回值有两个:arr[]和index。 arr[ 0:"完整关键词" ]                         index: 本次找到关键词的位置                                         reg.lastIndex即为下次开始查找的关键词的位置。exec会自动为下次查找位置重新赋值,不需要手动进行修改。如果没有找到关键字,就会返回NULL。不过需要注意的一点就是,先要判断是否为NULL,再使用。

exec做的哪三件事?                                                                                                                         1、将本次查找的关键字,放入数组中第0个元素,将每个数组中的子内容放入后续元素。 2、修改数组中的index元素位置,记录本次查找关键词的位置。3、修改reg.lastIndex属性=index+关键词的长度

固定的套路:

var arr=null;

while((arr=reg.exec(str))!=null){

arr[0] //完整关键词

arr[n] //第n个分组的子内容

arr.index //本次找到关键词的位置

reg.lastIndex //下次开始查找的位置

}

验证   ——  var bool=reg.test(str)      验证str是否符合reg的规则要求

问题:test默认,只要部分匹配reg要求就返回true

解决办法:只要验证,正则前面都加^,后面都加$,表示从头到尾匹配。(这是一个坑!)

相关文章

网友评论

      本文标题:RegExp

      本文链接:https://www.haomeiwen.com/subject/sxgpsxtx.html