去除首尾空格 - trim()
function myTrim(str) {
return str.replace(/(^\s+)|(\s+$)/g,'')//将前空格和后空格替换为空
}
超出数量显示…
// 简单按字符长度截取
if (row.length > 28) {
row = row.slice(0, 13) + '...'
}
// 按byte长度截取
function cutStringByByte(str: string, len: number): string {
if (!str && typeof str != 'undefined') {
return ''
}
let num = 0
let subStr = ''
for (const i of str) {
num += i.charCodeAt(0) > 255 ? 2 : 1
if (num > len) {
subStr += '...'
break
} else {
subStr += i
}
}
return subStr
}
颜色转换
JavaScript颜色转换的核心就是进制间的转换。RGB格式其实就是十进制表示法,所以,十六进制颜色与RGB颜色的转换就是十六进制与十进制之间的转换。
十六进制转换为十进制相对容易些,核心代码如下示例:parseInt("0xFF")
,其结果就是255,”0x”就表明当前是16进制,由于parseInt后面无参数,默认就是转换为10进制了。
十进制转换为16进制,核心代码如下:var r=255; r.toString(16);
,其结果是FF。”16″表示数值转换为16进制字符串。
uuid生成随机 字符串
/**
* 生成随机id
* @param {*} length
* @param {*} chars
*/
export function uuid(length, chars) {
chars =
chars ||
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
length = length || 8
var result = ''
for (var i = length; i > 0; --i)
result += chars[Math.floor(Math.random() * chars.length)]
return result
}
基于URL或者Crypto.getRandomValues生成UUID
function genUUID() {
const url = URL.createObjectURL(new Blob([]));
// const uuid = url.split("/").pop();
const uuid = url.substring(url.lastIndexOf('/')+ 1);
URL.revokeObjectURL(url);
return uuid;
}
genUUID() // cd205467-0120-47b0-9444-894736d873c7
function uuidv4() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
}
uuidv4() // 38aa1602-ba78-4368-9235-d8703cdb6037
//chrome 92支持
crypto.randomUUID()
基于toLocaleString千分位
function formatMoney(num){
return (+num).toLocaleString("en-US");
}
console.log(formatMoney(123456789)); // 123,456,789
console.log(formatMoney(6781)) // 6,781
console.log(formatMoney(5)) // 5
//超大的数
formatMoney(19999999933333333333333) // 19,999,999,933,333,333,000,000
input 输入字符串去掉首尾空格
testString.replace(/(^\s+)|(\s+$)/g,'')
内容脱敏
在一些涉及到用户隐私情况下,可能会遇到对用户的手机号身份证号之类的信息脱敏,但是这个脱敏数据的规则是根据用户信息要脱敏字段动态的生成的,此时我们动态拼接正则来实现一个动态脱敏规则
const encryptReg = (before = 3, after = 4) => {
return new RegExp('(\\d{' + before + '})\\d*(\\d{' + after + '})');
};
// 使用:'13456789876'.replace(encryptReg(), '$1****$2') -> "134****9876"
// 手机号中间四位变成*
export const telFormat = (tel) => {
tel = String(tel);
return tel.substr(0,3) + "****" + tel.substr(7);
};
搜索
// select下拉组件的搜索
function filterTableOption(input: string, option: any) {
return (
JSON.parse(option.value)
.table_name.toLowerCase()
.indexOf(input.toLowerCase()) >= 0 ||
JSON.parse(option.value)
.schema_name.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
)
}
// sourceString.toLowerCase().indexOf(targetString.toLowerCase()) >= 0