match用法和解构赋值

266 阅读1分钟

​match用法

match() 方法可在字符串内检索指定的值,找到一个或多个正则表达式的匹配

str = '14141414'
str.match(/4/g) // ['4', '4', '4', '4']

使用方法:

stringObject.match(searchvalue)

stringObject.match(regexp)

其中stringObject代表需要匹配的字符串,searchvalue代表需要从字符串中检索的内容,regexp代表正则表达式。该方法返回一个数组,但是分为两种情况:

① regexp 没有标志 g。

这种情况返回的数组只包含第一个匹配项,如果未找到匹配项将返回null。该返回的数组中,除了常规的数组元素外,还存在index和input两个对象属性,index存储的是匹配项在stringObject中的位置,而input存储的是stringObject的引用。比如:

console.log(str1.match(‘Hello’)); //传入字符串,返回 [“Hello”]

console.log(str1.match(/\w+/)); //传入正则表达式,返回 [“Hello”]

② regexp 具有标志 g。

这种情况代表全局匹配,返回的数组由所有匹配到的字符串元素组成。比如:

console.log(str1.match(/\w+/g)); //找到两个匹配项,返回 [“Hello”, “Real”]

console.log(str2.match(/\w+/)); //未找到匹配项,返回null

​ 解构赋值 ​

  •  按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构,例如ant-upload上传change事件中拿到回调中的fileList

    uploadChange({ fileList }){
      // 将回调中的fileList数组解构出来赋值给data中的fileList,也可解构file对象拿到当前上传文件实例
      this.fileList = fileList
    }
    

  • 解构赋值对于复杂数据类型是浅拷贝,对于简单数据类型是深拷贝

    const a = {
      name: '卢伟',
      age: 20,
      info:{
        city: '上海'
      }
    }
    let { name, age, info } = a
    name = 'PDD'
    age = 18
    info.city = '北京'
    console.log(name, age, info) // PDD 18 {city: '北京'}
    console.log(a) // {name: '卢伟', age: 20, info: {city: '北京'}}