正则表达式:/^|\s+/是什么意思?

问题:
看到一个实现对类名字符串进行分割的函数,里面的正则不太理解

代码:

  function classes(name) {
    return (name + "").trim().split(/^|\s+/);
  }

疑惑:
我知道s匹配各种空白字符串(nt)等,那么前面的 ^ 符号是用来匹配字符串的第一个字符,但是组合起来是什么意思?

阅读 11k
3 个回答

.split(/\s+/) 即可,^ 是多余的。

竖线 | 表示“或者”
就是两者之一:开头或者空白

^匹配的是字符串的开头
|匹配的是该符号左边或右边的子表达式
s匹配的是一个空白符
+匹配前一项1次或多次
.split(/^|s+/)将字符串按一个或多个空格进行分割成数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题