RegExp

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

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • '^'必须才开头开始匹配'$'必须在末尾结束匹配'|' 表示‘或’/ab|cd/匹配ab或者cd'.'表示点字符(...
    zjh111阅读 3,122评论 0 0
  • --------------------------正则的作用--------------------------...
    G_whk阅读 3,868评论 1 5
  • ECMAScript 通过RegExp 类型来支持正则表达式。使用下面类似Perl的语法,就可以创建一个正则表达式...
    shanruopeng阅读 1,580评论 0 1
  • 5.24正则学习 正则表达式语法: regexp对象 验证:var bool=reg.test(str)str符合...
    Mr丨qing阅读 1,409评论 0 0
  • 今天,入驻简书。 从此,简书成为我的树洞。 分享身边故事、见解、兴趣爱好等等。 最重要的是想认识一群灵魂相碰的人。...
    00910a3eebb9阅读 3,093评论 1 1

友情链接更多精彩内容