JavaScript:在字符串中查找子字符串几种方法比较

var str = "test, Tes, tst, tset, Test, Tesyt, sTes";
var reg = /es/gi;
alert(str.indexOf('es'));
alert(reg.exec(str));
alert(str.match(reg));
alert(str.search(reg));

弹出内容如下:

[img]http://dl2.iteye.com/upload/attachment/0114/5014/a528c3d5-d820-39c6-83e9-1b3bae0d74a2.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0114/5016/a82bff37-ad4c-3dc1-a260-037b071830a2.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0114/5018/7e670c46-57ac-3212-818f-9c34927fb489.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0114/5020/33b067c3-09fb-3103-a8ee-d8adda3cb2fb.png[/img]


分析如下:
1.indexOf()方法不支持正则表达式,但支持指定开始查找的位置。
2.search()方法支持正则表达式,不支持全局匹配正规表达式(带参数g),也不支持指定开始查找的位置,每次都只能找到一个关键词。找不到返回-1。
3.match()方法默认查找一次,要返回一个数组包含所有匹配关键字的内容必须加g。
4.exec()方法每次都只能找到一个关键词,且要是正则表达式的方法,不是String的。一旦找不到,返回null。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值