定义butil.js
/**
* @获取字符串字节长度
* @param {String} str
* @returns
*/
function getStrLen (str) {
let len = 0;
for (let i = 0; i < str.length; i++) {
let currLen = str.charCodeAt(i);
if (currLen >= 0 && currLen <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
/**
* @截取指定长度的字符串,超出部分显示指定字符
* @param {*} name
* @param {number} [len=8]
* @param {string} [endStr="..."]
* @returns
*/
export function cutOffStr (name, len = 8, endStr = "...") {
// 小于等于指定长度
if (getStrLen(name) <= len) return name;
// 超出指定长度
let formatName = '';
let strLen = 0;
for (let i = 0; i < name.length; i++) {
strLen += getStrLen(name[i]);
if (strLen <= len) {
formatName += name[i];
} else {
break;
}
}
return formatName + endStr;
}
在vue里
#引用
import {cutOffStr} from '@/utils/butil.js'
#在代码里使用
cutOffStr(srcStr)
如果在vue里直接使用
<u-th>{{cutOffStr(item.user_nick, 10)}}</u-th>
会报错
Error in render: "TypeError: _vm.cutOffStr is not a function"
需要在methon里再声明一下
methods: {
cutOffStr,
}
JS模块的导出和导入之export和module.export的区别 - 简书
一文彻底弄明白module.exports和exports的区别__cris的博客-CSDN博客_module.exports和exports的区别
vue中export default function 和 export function 的区别_阿长长啊的博客-CSDN博客