资讯专栏INFORMATION COLUMN

正则表达式☞相关函数

Profeel / 2281人阅读

正则表达式对象方法 test方法
var regexp1 = /a/g;
var regexp2 = /a/;
var str = "abcd";
regexp1.test(str); true
regexp1.test(str); false
regexp1.test(str); true
regexp2.test(str); true
regexp2.test(str); true

当正则表示式是全局模式时,每次调用都会重置正则表达式对象的lastIndex属性,下一次调用test方法的时候,将会从lastIndex开始查找;非全局模式时,lastIndex属性始终为0

exec方法
var reg = /a/g;
var strs = "abcdabcdabcd";
reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg.exec(strs); ["a", index: 4, input: "abcdabcdabcd"]
reg.exec(strs); ["a", index: 8, input: "abcdabcdabcd"]
reg.exec(strs); null
reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
var reg1 = /a/;
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]

当正则表示式是全局模式时,每次调用都会重置正则表达式对象的lastIndex属性,下一次调用test方法的时候,将会从lastIndex开始查找;非全局模式时,lastIndex属性始终为0。但是不管正则表达式是全局模式还是非全局模式,都只返回一个匹配项的相关信息,区别于后面说到的match方法

字符串与正则表达式相关的方法 match方法
var reg = /a/g;
var reg1 = /a/;
var strs = "abcdabcdabcd";
strs.match(reg); ["a", "a", "a"]
strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"]
strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"]

当正则表示式是全局模式时,会把所有的匹配项都组成数组返回来;非全局模式时,只返回匹配的第一项。

search方法
var reg = /a/g;
var reg1 = /a/;
var strs = "abcdabcdabcd";
strs.search(reg); 0
strs.search(reg); 0
strs.search(reg); 0
strs.search(reg1); 0
strs.search(reg1); 0
strs.search(reg1); 0

不管正则表示式是全局模式还是非全局模式,只返回匹配的第一项。

replace方法
var reg = /a/g;
var reg1 = /a/;
var strs = "abcdabcdabcd";
strs.replace(reg, "&"); "&bcd&bcd&bcd"
strs.replace(reg1, "&"); "&bcdabcdabcd"

如果正则表示式是全局模式,替换所有匹配的字符串,如果是非全局模式,只替换匹配的第一项。
字符串与正则相关的三个方法都不会改变正则表达式的属性,不会改变lastIndex的值

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92570.html

相关文章

  • JavaScript正则达式RegExp

    摘要:的正则表达式体系是参照建立的。字面量形式构造函数形式以上都是创建了一个内容为的正则表达式,其表示对一个手机号码的校验。按照给定的正则表达式进行替换,返回替换后的字符串。 正则表达式,也称规则表达式,经常使用其来完成对字符串的校验和过滤。由于正则表达式的灵活性、逻辑性和功能性都非常强大,而且 可以利用很简单的方式完成对复杂字符串的控制,所以很多程序语言都支持正则表达式。在JavaScri...

    SexySix 评论0 收藏0
  • 20170605-正则达式相关

    摘要:在不设置全局标志的情况下,在同一个字符创上多次调用将始终返回第一个匹配项的信息。 字面量定义正则表达式 ECMAScript通过RegExp类型来支持正则表达式 var expression = / pattern / flags:模式(pattern)部分可以是任何简单或复杂的正则表达式,标志(flag)部分用来标明正则表达式的匹配模式 正则表达式的匹配模式支持下列3个标志: ...

    Jenny_Tong 评论0 收藏0
  • 一道小小的题目引发对javascript支持正则达式相关方法的探讨

    摘要:返回值返回值根据传入的参数类型和规则的不同,返回的内容不同,但总体来说,它是返回一个对象,而不是索引,如果没匹配到任何符合条件的字符串,则返回。 本文发布在我的博客一道小小的题目引发对javascript支持正则表达式相关方法的探讨许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。 以前对于正则是非常惧怕的,因为看不懂和学不会。但最近项目中频繁的...

    Scholer 评论0 收藏0
  • Backbone源码解读(三)

    摘要:事件关于路由触发事件是通过两个函数来完成的,它们分别是和前者会检测路由是否发生了改变,如果改变了就会触发函数并调用函数,而后者会通过路由片段来找到相关的事件函数来触发。 注意:强烈建议一边阅读源码一边阅读本文。 终于到了backbone源码解读的最后一篇,这一篇和前面几篇时间上有一定的间隔(因为要回学校有一堆乱七八糟的事...)。在这一篇里面会讲解Bakcbone的sync & rou...

    feng409 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<