js中split 正则表示式 (/[,+]/)

时间:2021-05-13 18:41:32

定义和用法

split() 方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)

  separator 作为分隔符,separator可以是一个String类型也可以是一个RegExp对象,平时很少用到正则作为分隔符,查了些资料加上自己的理解,记录下:

  比如这段代码:

  

var str = "姓名+研究编号+年龄"

var  res = str.split(/[,+]/).map(_.trim);

  1. [ ] 中括号在正则中称为字符组(Character class),有的书翻译为字符类,还有的翻译成字符集。字符组为一组字符,它表示在一个位置里可能出现的多种字符。注意这里强调只匹配一个位置。

“很多元字符在字符组内都变成了普通字符”  ,像  "?","+","*"这几个一旦放到中括号也变成了普通的字符了。所以此处中括号里的“,”“+” 都为普通的字符,[,+]  表示 以逗号和加号为分隔符进行切割。

  2. 再看 .map 用法

   map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

  所以这段代码可以解释为 调用 _.trim 这个方法处理分割后的 res ,返回新的数组。

  3. _.trim  是 Lodash 里的用法,不清楚可以查文档 https://www.css88.com/doc/lodash/#_trimstring-charswhitespace

  _.trim([string=''], [chars=whitespace])

  从string字符串中移除前面和后面的 空格 或 指定的字符。

  最后 得到 str 的值为以加号分割的数组 : ['姓名', '研究编号', '年龄']