一. 总方法
const StrUtils = {
// 获取字符串字节数
byteSize(str) {
if (!str) {
return 0;
}
// 用到了Blob对象,Blob对象代表了一段二进制数据
return new Blob([str]).size;
},
// 从字符串中去除HTML
stripHtml(htmlStr) {
const doc = new DOMParser().parseFromString(htmlStr, 'text/html');
return doc.body.textContent || '';
},
// 将指定长度外的字符串替换为指定内容
truncate(str, max, suffix) {
return str.length < max ? str : `${str.substr(0, str.substr(0, max - suffix.length).length)}${suffix}`;
},
// 字符串首字母大写
capitalize(str) {
// 若str为null,则处理为空字符串
const [first, ...rest] = str ?? '';
return (first?.toUpperCase() ?? '') + rest.join('');
},
// 判断是否为字符串
validateIfString(value) {
return Object.prototype.toString.call(value) === '[object String]';
},
// 字符串转换为驼峰
toCamelCase(str) {
return str.trim().replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));
}
};
二. 获取字符串字节数
const str1 = "我叫123";
const str2 = "ABC123";
const str3 = "コンバージョン";
console.log(StrUtils.byteSize(str1)); // 9
console.log(StrUtils.byteSize(str2)); // 6
console.log(StrUtils.byteSize(str3)); // 21
三. 从字符串中去除HTML
const htmlStr = `
我是普通文本开始
<div id="test_content" style="background-color: red;">
测试内容1,我外面有div标签包裹
</div>
我是普通文本结束
`;
console.log(StrUtils.stripHtml(htmlStr));
/*
我是普通文本开始
测试内容1,我外面有div标签包裹
我是普通文本结束
*/
四. 将指定长度外的字符串替换为指定内容
⏹指定字符串的字数共为15个字,多余的部分用⋅⋅⋅来代替
console.log(StrUtils.truncate("我正在学习的语言是JavaScript,ES6语法真是太好用了!", 15, "⋅⋅⋅"));
// 我正在学习的语言是Jav⋅⋅⋅
五. 判断是否为字符串
console.log(StrUtils.validateIfString('hello world')); // true
console.log(StrUtils.validateIfString(new String('hello world'))); // true
console.log(StrUtils.validateIfString(10)); // false
console.log(StrUtils.validateIfString({name: 'jiafeitian'})); // false
六. 字符串转换为驼峰
console.log(StrUtils.toCamelCase('-webkit-scrollbar-thumb')); // WebkitScrollbarThumb
console.log(StrUtils.toCamelCase('_hello_world'));// HelloWorld
console.log(StrUtils.toCamelCase('hello_world')); // helloWorld
console.log(StrUtils.toCamelCase('background-color')); // backgroundColor
七. 字符串首字母大写
⏹将字符串第一个字符解构出来,剩余部分解构为数组,
⏹然后首字母转换为大写,剩余数组转换为字符串和首字母拼接
console.log(StrUtils.capitalize('hello')); // Hello