Skip to content
鼓励作者:欢迎打赏犒劳

好用的js工具类

字符串相关

Slugify

Slugify: 优雅地生成URL友好的字符串 slugify 是一个简洁易用的 Node.js 库,用于将字符串转换为 URL 友好的格式。 如果您在构建网站、博客或 API 时需要处理字符串并将其转换为 URL 可读的形式,slugify 将成为您不可或缺的工具。

项目首页:https://gitcode.com/slugify/slugify/overview;

https://www.npmjs.com/package/slugify

shell
npm install slugify

然后,在您的应用中导入并使用 slugify 函数:

javascript
const { slugify } = require('slugify');

// 将字符串转换为 URL 友好的格式
const result = slugify('Hello, World!');
console.log(result); // 输出 "hello-world"

优化方案

slugify 是一个常用于创建URL友好字符串的函数,它通常用于将文章标题或其他文本转换为仅包含小写字母、数字和连字符的字符串。

,因为它们通常只考虑了英文字符的转换规则。

解决方法: 要使 slugify 函数识别并转换中文字符,你需要使用一个能够处理中文的转换方法。 以下是一个简单的示例,使用了 slugify 库和 lodash 的 deburr 函数来处理中文字符的转换:

首先,安装 slugify 库和 lodash:

shell
npm install slugify
npm install lodash

使用以下代码进行转换:

javascript
const slugify = require('slugify');
const _ = require('lodash');
 
function customSlugify(text) {
  // 使用 deburr 去除文本中的重音符号,使得 "é" -> "e" 等
  const preparedText = _.deburr(text);
  // 使用 slugify 进行转换,并设置选项以去除非单词字符
  return slugify(preparedText, {
    replacement: '-',  // 转换空格和非单词字符为连字符
    remove: /[^w-]+/  // 移除非单词字符
  }).toLowerCase();
}
 
const chineseText = '你好世界';
const slug = customSlugify(chineseText);
console.log(slug); // 输出: "ni-hao-shi-jie"

编解码

base64编解码

在 JavaScript 中,btoa 和 atob 是两个用于 Base64 编码和解码的函数。下面是对这两个函数以及 Base64 的解释和代码示例:

  • btoa 函数:btoa(表示 base64 encode)将字符串转换为 Base64 编码的数据。它接受一个 ASCII 字符串参数,并返回经过 Base64 编码的字符串。
  • b 表示 "binary",它指示函数处理二进制数据的能力。
  • toa 是 "to ASCII" 的缩写,表明函数将数据从一种格式转换为 ASCII 字符串。
javascript
const originalString = 'Hello, World!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出:SGVsbG8sIFdvcmxkIQ==

btoa处理中文会报错,解决方案是先编译:

javascript
var str = '?title=标题&url=https://www.baidu.com'
var strA = window.btoa(encodeURIComponent(str))
var strB = decodeURIComponent(window.atob(strA))
console.log(strA) // 'JTNGdGl0bGUlM0QlRTYlQTAlODclRTklQTIlOTglMjZ1cmwlM0RodHRwcyUzQSUyRiUyRnd3dy5iYWlkdS5jb20='
console.log(strB) // '?title=标题&url=https://www.baidu.com'

注意: base64 转换时去除 "data:image/png;base64,", 只要后面的文件流, 否则 atob 报错

atob 函数:atob(表示 base64 decode)将已经进行 Base64 编码的数据解码为原始字符串。它接受一个 Base64 编码的字符串参数,并返回解码后的 ASCII 字符串。

javascript
const encodedString = 'SGVsbG8sIFdvcmxkIQ==';
const originalString = atob(encodedString);
console.log(originalString); // 输出:Hello, World!

如有转载或 CV 的请标注本站原文地址