美文网首页
ES5-String-match/search/replace/

ES5-String-match/search/replace/

作者: chrisghb | 来源:发表于2019-06-14 09:14 被阅读0次

    match方法用于确定原字符串是否存在某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null

    'cat, bat, sat, fat'.match('at') // ["at"]
    'cat, bat, sat, fat'.match('xt') // null
    ->
    indexOf也有类似功能
    'cat, bat, sat, fat'.indexOf('xt')// -1
    

    返回的数组还有index属性和input属性,分别表示匹配字符串开始的位置和原始字符串。

    var matches = 'cat, bat, sat, fat'.match('at');
    matches.index // 1
    matches.input // "cat, bat, sat, fat"
    

    search方法的用法基本等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1

    'cat, bat, sat, fat'.search('at') // 1
    
    • 注意:search方法还可以使用正则表达式作为参数,但indexOf不能。

    replace方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。

    stringObject.replace(regexp/substr,replacement)
    
    'aaa'.replace('a', 'b') // "baa"
    'aaa'.replace(/a/g, 'b') // "bbb"
    

    split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组

    'a|b|c'.split('|') // ["a", "b", "c"]
    

    如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。

    'a|b|c'.split('') // ["a", "|", "b", "|", "c"]
    

    如果省略参数,则返回数组的唯一成员就是原字符串。

    'a|b|c'.split() // ["a|b|c"]
    

    如果满足分割规则的两个部分紧邻着(即两个分割符中间没有其他字符),则返回数组之中会有一个空字符串。

    'a||c'.split('|') // ['a', '', 'c']
    

    如果满足分割规则的部分处于字符串的开头或结尾(即它的前面或后面没有其他字符),则返回数组的第一个或最后一个成员是一个空字符串。

    '|b|c'.split('|') // ["", "b", "c"]
    'a|b|'.split('|') // ["a", "b", ""]
    

    split方法还可以接受第二个参数,限定返回数组的最大成员数

    'a|b|c'.split('|', 0) // []
    'a|b|c'.split('|', 1) // ["a"]
    'a|b|c'.split('|', 2) // ["a", "b"]
    'a|b|c'.split('|', 3) // ["a", "b", "c"]
    'a|b|c'.split('|', 4) // ["a", "b", "c"]
    

    上面代码中,split方法的第二个参数,决定了返回数组的成员数。

    相关文章

      网友评论

          本文标题:ES5-String-match/search/replace/

          本文链接:https://www.haomeiwen.com/subject/nqwefctx.html