12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import StrKit from '@/utils/str-kit'
- const strFilter = {
- /**
- * 功能描述:剪切字符串过滤器
- * 使用方式:
- * {{item.deviceName | cutStr(14)}}
- * @param value
- * @param len
- * @param placeholder
- * @returns {*}
- */
- cutStr (value, len, placeholder) {
- if (!value) {
- return ''
- }
- len = len || 18
- placeholder = placeholder || '...'
- let count = 0
- let titleLenOld = StrKit.getByteLen(value)
- let titleLenNew = 0 // 初始化重新构造的title的长度
- for (var i = 0; i < value.length; i++) {
- if (titleLenNew < len) {
- ++count
- if (value[i].match(/[^x00-xff]/ig) !== null) { // 全角
- titleLenNew += 2
- } else {
- titleLenNew += 1
- }
- } else {
- break
- }
- }
- value = value.substring(0, count) + (titleLenOld <= len ? '' : placeholder)
- return value
- },
- /**
- * 功能描述:格式化手机号码
- * 使用方式:
- * {{item.deviceName | fmtPhoneNumber}}
- * @param val
- * @returns {string|string | *}
- */
- fmtPhoneNumber (val) {
- val = val.replace(/[^\d]/g, '').substr(0, 11)
- if (val.length <= 3) {
- return val
- } else if (val.length <= 7) {
- val = val.replace(/(\d{3})(\d{0,4})/, '$1-$2')
- } else {
- val = val.replace(/(\d{3})(\d{0,4})(\d{0,4})/, '$1-$2-$3')
- }
- return val
- },
- // 全局安装器
- install (Vue) {
- Vue.filter('cutStr', this.cutStr)
- Vue.filter('fmtPhoneNumber', this.fmtPhoneNumber)
- }
- }
- export default strFilter
|