words.js

import { makeStr } from './helper/makeStr'
import { escapeRegexp } from './helper/escapeRegexp'
import { isBlank } from './isBlank'

/**
 * 分割字符串为单词数组。
 * @module str/words
 * @param  {String} str              需要分割的字符串
 * @param  {RegExp} [delimiter=/s+/] 单词分界
 * @return {Array}                  单词数组
 * @example
 * str.words('I love you')        // ['I', 'love', 'you']
 * str.words('I  love   you')     // ['I', 'love', 'you']
 * str.words('I_love_you', '_')   // ['I', 'love', 'you']
 * str.words('I-love-you', /-/)   // ['I', 'love', 'you']
 * str.words(123)                 // ['123']
 * str.words('   ')               // []
 */
export let words = (str, delimiter = /\s+/) => {
  str = makeStr(str)
  if (isBlank(str)) {
    return []
  }
  delimiter = delimiter instanceof RegExp ? delimiter : new RegExp(escapeRegexp(delimiter))
  return str.split(delimiter)
}