splice.js

import { chars } from './chars'

/**
 * 插入、删除或者替换字符串的字符。(使用方法跟Array.splice一样)
 * @module str/splice
 * @param  {String} str       需要插入、删除或者替换字符的字符串
 * @param  {Number} [start=0] 开始插入和(或)删除处的字符的索引值
 * @param  {String} delCount  要删除的字符的个数
 * @param  {String} subStr    要插入的字符串
 * @return {String}           已插入、删除或者替换字符的字符串
 * @example
 * // 'https://edtsech@bitbucket.org/epeli/underscore.strings'
 * str.splice('https://edtsech@bitbucket.org/edtsech/underscore.strings', 30 , 7, 'epeli')
 *
 * str.splice(12345, 1, 2, 321)   // '132145'
 */
export let splice = (str, start = 0, delCount, subStr) => {
  let arr = chars(str)
  if (!arr) {
    return ''
  }
  start = parseInt(start)
  delCount = parseInt(delCount)
  if (!delCount) {
    arr.splice(start)
  } else if (!subStr) {
    arr.splice(start, delCount)
  } else {
    arr.splice(start, delCount, subStr)
  }
  return arr.join('')
}