Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值

简介: 这篇文章介绍了在Vue 2项目中使用CRC32算法和Unicode编码来生成字符串对应的颜色值的两种方法,包括如何导入依赖、编写工具函数、在Vue原型上挂载以及具体的使用示例。

前言

简单记录一下在 Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值。

一、使用 CRC32 转换字符串来生成十六进制颜色值

1.导入依赖

npm install crc-32

2.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'
import CRC32 from 'crc-32'

const stringToColor = (str) => {
   
    if (str) {
   
        str = Math.abs(CRC32.str(str)).toString(10);
        return '#' + str.substring(0, 6);
    } else {
   
        return 'transparent'; // 透明
    }
}

Vue.prototype.$stringToColor= stringToColor

3.全局引入

import './utils/colorUtil'

4.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>

二、使用字符串 Unicode 编码生成 RGB 颜色值

1.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'

const stringToColor = (str) => {
   
    let hash = 0;
    for (var i = 0; i < str.length; i++) {
   
        hash = hash * 31 + str.charCodeAt(i);
        hash = intValue(hash);
    }
    let r = (hash & 0xFF0000) >> 16;
    let g = (hash & 0x00FF00) >> 8;
    let b = (hash & 0x0000FF);
    return 'rgba(' + r + ',' + g + ',' + b + ',' + '0.2)';
}

function intValue(num) {
   
    var MAX_VALUE = 0x7fffffff;
    var MIN_VALUE = -0x80000000;
    if(num > MAX_VALUE || num < MIN_VALUE)
    {
   
        return num &= 0xFFFFFFFF;
    }
    return num;
}

Vue.prototype.$stringToColor = stringToColor

2.全局引入

import './utils/colorUtil'

3.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>
目录
相关文章
|
JSON JavaScript 数据格式
Vue中base64编码和解码
Vue中base64编码和解码
301 0
|
JavaScript Unix
App Inventor 2 实现Ascii码转换(Ascii编码与解码)
之前有同学问,App Inventor 2 字符及Ascii码如何进行转换,经过调查,其原生的组件和内置块无法完成这个功能,网上也有利用Web客户端组件执行js代码来进行转换,不过逻辑稍复杂效率还不高。这里介绍一个拓展可以非常方便的完成Ascii码的转换,拓展的名字是:AsciiConversion。 此扩展允许用户将 Ascii 代码(列表)转换为相应的文本,也可以将指定的字符转换为相应的 Ascii 代码。
157 0
|
存储 JavaScript 前端开发
在 JavaScript 中将字符代码转换为 ASCII 代码
在 JavaScript 中将字符代码转换为 ASCII 代码
107 0
|
JavaScript
js数组与字符串的相互转换,排除某个符号或文字
js数组与字符串的相互转换,排除某个符号或文字
160 0
|
JSON JavaScript 数据格式
js将 一串数字1403149534转换为日期格式
js将 一串数字1403149534转换为日期格式
338 0
|
JavaScript
js: 字符(字母) 与 ASCII码 转换方法
js: 字符(字母) 与 ASCII码 转换方法
728 0
|
JavaScript 前端开发 Python
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
242 0
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
|
JavaScript
js之RGB->转换为十六进制
js之RGB->转换为十六进制
4981 0
|
JavaScript