/**
 * 驼峰处理
 * b(byted-button) // 'bytedButton'
 */ const camelizeRE = /-(\w)/g ; export function camelize ( str ) { return str . replace ( camelizeRE , ( _ , c ) => c . toUpperCase ( ) ) ; } const RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g ; /**
 * 获取字符长度
 * 数字英文算一个字符长度 汉字算两个字符长度
 */ export function getStringLen ( str ) { return ! str ? 0 : str . replace ( /[^\x00-\xff]/g , 'oe' ) . length ; } param msg param options example export function translate ( msg , options ) { if ( options . length === 1 && typeof options [ 0 ] === 'object' ) { options = options [ 0 ] ; } if ( ! options || ! options . hasOwnProperty ) { options = { } ; } return msg . replace ( RE_NARGS , ( match , _prefix , i , index ) => { let result ; if ( msg [ index - 1 ] === '{' && msg [ index + match . length ] === '}' ) { return i ; } else { result = Object . prototype . hasOwnProperty . call ( options , i ) ? options [ i ] : null ; if ( result === null || result === undefined ) { return '' ; } return result ; } } ) ; }