ES6学习--正则的扩展

字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。

  • match()
    在这里插入图片描述
    match方法的返回值是存放首次匹配内容的数组,如果没有找到匹配结果,返回null。
    对上述代码运行结果分析如下:

    (1).match方法在有匹配结果的时候返回值是一个数组。

    (2).数组第一个元素是match方法首次匹配到的子字符串,“antzone"虽然有多个"n”,但是返回的数组只存储首次匹配到的"n",如果match方法的参数是全局匹配的正则,将会存储所有的匹配到的子字符串。

    (3).index属性值返回首次匹配到子字符串的位置。

    (4).input属性值是原字符串"antzone"。

    (5).groups属性当前并不被支持,暂时不做介绍。

  • replace()
    replace方法对string进行查找和替换,并返回一个新字符串。
    语法为:string.replace(searchValue, replaceValue)
    参数searchValue有两种形式:1、字符串 2、正则表达式
    参数replaceValue也有两种形式:1、字符串 2、函数
    详情可参考:js replace() 方法的应用和理解

  • search()
    语法:stringObject.search(regexp)
    用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,返回stringObject 中第一个与 regexp 相匹配的子串的起始位置,如果要执行忽略大小写的检索,请追加标志 i,该方法不执行全局匹配,它将忽略标志 g,也就是总是返回第一个匹配的位置,这一点和match不同。

  • split()
    用于把一个字符串分割成字符串数组。
    语法:stringObject.split(separator,howmany)
    separator参数:必需填。字符串或正则表达式,从该参数指定的地方分割 stringObject。
    howmany参数:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上:
String.prototype.match 调用 RegExp.prototype[Symbol.match]
String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
String.prototype.search 调用 RegExp.prototype[Symbol.search]
String.prototype.split 调用 RegExp.prototype[Symbol.split]
如图:在这里插入图片描述

发布了104 篇原创文章 · 获赞 64 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/cuishizun/article/details/82774010