classify.js

import { makeStr } from './helper/makeStr'
import { capitalize } from './capitalize'

/**
 * 将字符串转换成类名(即每个单词的首字母为大写)。
 * @module str/classify
 * @param  {String} str 需转换成类名的字符串
 * @return {String}     已转换成类名的字符串
 * @example
 * str.classify('some_class_name')            // 'SomeClassName'
 * str.classify('my wonderfull class_name')   // 'MyWonderfullClassName'
 * str.classify('my wonderfull.class.name')   // 'MyWonderfullClassName'
 * str.classify('myLittleCamel.class.name')   // 'MyLittleCamelClassName'
 */
export let classify = (str) => {
  str = makeStr(str)
  if (str === '') {
    return ''
  }
  // 分割单词,并放到数组中
  // 将一切非字母和数字的字符看作单词分界
  let words = str.match(/([a-zA-Z0-9]+)/g)
  return words.map(val => {
    return capitalize(val)
  }).join('')
}