JavaScript权威指南(第6版) --- 自学笔记(7) --- 模式匹配、RegExp简单说明

模式匹配
回想一下,JavaScript权威指南(第6版) --- 自学笔记(五)中,曾经写过一个字符串的replaceAll方法:

String.prototype.replaceAll = function(searchVal, repalceVal) {
    return this.replace(new RegExp(searchVal, "gm"), repalceVal);
}

 JS定义了RegExp()构造函数,用来创建表示文本匹配模式的对象,这些模式称为正则表达式 (regular expression)。
JS采用Perl中的正则表达式语法。

RegExp并不是JS的基本类型,和Date一样,它只是一种具有实用API的特殊对象。
RegExp一样具有直接量写法,可以直接在js程序中使用,
在两条斜线之间的文本构成了一个正则表达式直接量,第二条斜线之后也可以跟随一个或多个字母,用来修饰匹配模式的含义。

/^HTML/; // 匹配以HTML开始的字符串
/[1-9][0-9]*/; // 匹配一个非零数字,后面是任意个数字
/\bjavascript\b/i; // 匹配单词"javascript",忽略大小写

RegExp对象定义了很多有用的方法,字符串同样具有可以接受RegExp参数的方法,如下:

    var str = "testing: 1, 2, 3";
    var pattern = /\d+/g; // 匹配所有包含一个或者多个数字的实例
    console.log(pattern.test(str)); // true
    console.log(pattern.test("abc")); // false
    console.log(str.search(pattern)); // 9,首次匹配成功的位置
    console.log(str.match(pattern)); // ["1", "2", "3"],所有匹配组成的数组
    console.log(str.replace(pattern, "#")); // testing: #, #, #,替换匹配的字符
    console.log(str.split(/\D+/)); // ["", "1", "2", "3"],使用非数字字符截取字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值