正则表达式函数之match、test、exec、search、split、replace使用详解


  // 1. Match函数
  // 原型:stringObj.match(regExp)
  // 原型:stringObj.match(regExp)
  // 返回值:如果没有使用g(全局匹配)选项,则返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,
  // 如果使用g选项,则返回所有匹配的字符串组成的数组
  var str = "aaabbbcccaaabbbccc";
  var reg = str.match(/aaa/)
  var reg2 = str.match(/aaa/g)
  console.log(reg)
  console.log(reg2)

  // 2.exec函数
  // 原型:regExp.exec(stringObj)
  // 使用指定的正则表达式模式去字符串中查找匹配项,并以数组形式返回,如果未查找到则返回null
  // 返回值:无论有无g选项,都返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,
  // 但是该方法可以返回子匹配项,是match所不能及的

  // 示例1: 
  var str = "aaabbbcccaaabbbccc";  
  var regExp = /aaa/ 
  var reg = regExp.exec(str)
  console.log(reg)

  // 示例2:
  var str = "aaabbbcccaaabbbccc";   
  var regExp = /aaa/g
  var reg = regExp.exec(str)
  console.log(reg)

  //  示例3:
  var str = "aaabbbccc1234aaabbbccc";
  var regExp = /ccc([0-9]+)aaa/
  console.log(regExp.exec(str))
  // 第一个表示整个正则表达式所匹配的内容;第二个表示()内容的子表达式所匹配的内容;第三个和第四个同上

  //  示例4:
  // var str = "daaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc"; 
  // var reg = /ccc([0-9]+)aaa/g;
  // var res = reg.exec(str) 
  // console.log(res)
  // 输出同示例三,因为exec只返回第一个匹配的字符串,如果想全部返回,则需要借助while循环和g参数来实现,如下   
  var str = "aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc";   
  var reg = /ccc([0-9]+)aaa/g;  
    while(res = reg.exec(str)){
      console.log(res)
    }

    // 3.test函数
    // 原型:regExp.test(str)
    // 返回值:布尔类型,匹配则返回true,否则false
    // 示例1:
    var str = "aaabbbcccaaabbbccc"
    var reg = /[a-z]+/
    var res = reg.test(str)
    console.log(res)

    //  示例2: 
    var str = "aaabbbcccaaabbbccc"; 
    var reg = /[0-9]+/
    var res = reg.test(str)
    console.log(res)

    // 4.search函数
    // 原型:stringObj.search(regExp)
    // 返回值:返回第一个匹配的字符串所在的位置(偏移量),从0开始
    var str = "aaabbbcccaaabbbccc";   
    var reg = /ccc/;
    console.log(str.search(reg)) 

    // 5.replace函数
    // 原型:stringObj.replace(regExp, replaceText)
    // replaceText表示替换成该文本内容,replaceText也可以是返回字符串的一个函数
    var str = "aaabbbcccaaabbbccc";   
    var regExp = /aaa/g
    var res = str.replace(regExp,"111")
    console.log(res)

    // 5.split函数
    // 原型:stringObj.split([separator[, limit]])
    var str = "aaa,bbb,ccc"
    var reg = /,/
    var res = str.split(reg)
    console.log(res)
    // 示例2:
    var str = "aaa,bbb:ccc@ddd#eee";   
    var reg = /[,:@#]/;
    var res =  str.split(reg)
    console.log(res)
    // 示例3.   
    var str = "aaa,bbb:ccc@ddd#eee";  
    var reg = /[,:@#]/
    var res = str.split(reg,3)
    console.log(res)

原文:https://ccccc.blog.csdn.net/article/details/51505626?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

你可能感兴趣的:(面试宝典-js)