去除首尾空格 - trim()

  1. function myTrim(str) {
  2. return str.replace(/(^\s+)|(\s+$)/g,'')//将前空格和后空格替换为空
  3. }

超出数量显示…

  1. // 简单按字符长度截取
  2. if (row.length > 28) {
  3. row = row.slice(0, 13) + '...'
  4. }
  1. // 按byte长度截取
  2. function cutStringByByte(str: string, len: number): string {
  3. if (!str && typeof str != 'undefined') {
  4. return ''
  5. }
  6. let num = 0
  7. let subStr = ''
  8. for (const i of str) {
  9. num += i.charCodeAt(0) > 255 ? 2 : 1
  10. if (num > len) {
  11. subStr += '...'
  12. break
  13. } else {
  14. subStr += i
  15. }
  16. }
  17. return subStr
  18. }

颜色转换

JavaScript颜色转换的核心就是进制间的转换。RGB格式其实就是十进制表示法,所以,十六进制颜色与RGB颜色的转换就是十六进制与十进制之间的转换。

十六进制转换为十进制相对容易些,核心代码如下示例:parseInt("0xFF"),其结果就是255,”0x”就表明当前是16进制,由于parseInt后面无参数,默认就是转换为10进制了。

十进制转换为16进制,核心代码如下:var r=255; r.toString(16);,其结果是FF。”16″表示数值转换为16进制字符串。

uuid生成随机 字符串

  1. /**
  2. * 生成随机id
  3. * @param {*} length
  4. * @param {*} chars
  5. */
  6. export function uuid(length, chars) {
  7. chars =
  8. chars ||
  9. '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  10. length = length || 8
  11. var result = ''
  12. for (var i = length; i > 0; --i)
  13. result += chars[Math.floor(Math.random() * chars.length)]
  14. return result
  15. }

基于URL或者Crypto.getRandomValues生成UUID

  1. function genUUID() {
  2. const url = URL.createObjectURL(new Blob([]));
  3. // const uuid = url.split("/").pop();
  4. const uuid = url.substring(url.lastIndexOf('/')+ 1);
  5. URL.revokeObjectURL(url);
  6. return uuid;
  7. }
  8. genUUID() // cd205467-0120-47b0-9444-894736d873c7
  9. function uuidv4() {
  10. return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
  11. (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  12. }
  13. uuidv4() // 38aa1602-ba78-4368-9235-d8703cdb6037
  14. //chrome 92支持
  15. crypto.randomUUID()

基于toLocaleString千分位

  1. function formatMoney(num){
  2. return (+num).toLocaleString("en-US");
  3. }
  4. console.log(formatMoney(123456789)); // 123,456,789
  5. console.log(formatMoney(6781)) // 6,781
  6. console.log(formatMoney(5)) // 5
  7. //超大的数
  8. formatMoney(19999999933333333333333) // 19,999,999,933,333,333,000,000

input 输入字符串去掉首尾空格

  1. testString.replace(/(^\s+)|(\s+$)/g,'')

image.png

内容脱敏

在一些涉及到用户隐私情况下,可能会遇到对用户的手机号身份证号之类的信息脱敏,但是这个脱敏数据的规则是根据用户信息要脱敏字段动态的生成的,此时我们动态拼接正则来实现一个动态脱敏规则

  1. const encryptReg = (before = 3, after = 4) => {
  2. return new RegExp('(\\d{' + before + '})\\d*(\\d{' + after + '})');
  3. };
  4. // 使用:'13456789876'.replace(encryptReg(), '$1****$2') -> "134****9876"
  1. // 手机号中间四位变成*
  2. export const telFormat = (tel) => {
  3. tel = String(tel);
  4. return tel.substr(0,3) + "****" + tel.substr(7);
  5. };

搜索

  1. // select下拉组件的搜索
  2. function filterTableOption(input: string, option: any) {
  3. return (
  4. JSON.parse(option.value)
  5. .table_name.toLowerCase()
  6. .indexOf(input.toLowerCase()) >= 0 ||
  7. JSON.parse(option.value)
  8. .schema_name.toLowerCase()
  9. .indexOf(input.toLowerCase()) >= 0
  10. )
  11. }
  12. // sourceString.toLowerCase().indexOf(targetString.toLowerCase()) >= 0