npm 包 vetted 使用教程

阅读时长 11 分钟读完

什么是 vetted

vetted 是一个开源的 npm 包,它提供了一组有用的函数和工具,用于检查和过滤不良数据,帮助我们提高应用的数据质量,保护用户隐私和安全。

vetted 包含以下模块:

  • sanitize:用于过滤和清理 HTML 和文本内容中的不良元素、属性和样式;
  • validate:用于验证表单输入和数据格式、类型、长度等;
  • encrypt:用于加密和解密敏感数据;
  • hash:用于生成和验证哈希值和摘要;
  • transform:用于格式化和转换数据类型和结构。

安装和引入

要使用 vetted,我们需要先安装它:

然后,在我们的应用中引入它:

或者,使用 ES6 模块的方式引入:

sanitize

sanitize 模块用于过滤和清理 HTML 和文本内容中的不良元素、属性和样式,以防止 XSS 攻击和其他安全漏洞。

sanitize 提供了以下函数:

  • stripTags(str[, allowed]):过滤 HTML 标签,默认允许的标签有 <b><i><u><em><strong><br><p><a><img>
  • stripAttrs(str[, allowed]):过滤 HTML 属性,默认允许的属性有 classstylesrchrefalttitletargetrel
  • stripStyles(str[, allowed]):过滤 CSS 样式,默认允许的样式有 colorbackground-colorfont-sizefont-weightfont-styletext-decorationtext-align
  • stripScripts(str[, allowed]):过滤 JavaScript 代码。

以下是一个示例代码:

-- -------------------- ---- -------
----- - -------- - - ------------------

-- -----------
----- ---- - ----------- ----- ------------ ------------------------------ -------------------------------------
------------------------------------ -------------- -- ------ ----- ---------------------------- -----------------------------------

-- --------------
----- -- - ---------------------- --------------------
--------------------------------------- -- -----------------

validate

validate 模块用于验证表单输入和数据格式、类型、长度等,以确保数据的正确性和完整性。

validate 提供了以下函数:

  • isEmpty(value):检查值是否为空;
  • isString(value):检查值是否为字符串;
  • isNumber(value):检查值是否为数字;
  • isBoolean(value):检查值是否为布尔值;
  • isArray(value):检查值是否为数组;
  • isObject(value):检查值是否为对象;
  • isEmail(value):检查值是否为有效的电子邮件地址;
  • isURL(value):检查值是否为有效的 URL 地址;
  • isIP(value[, version]):检查值是否为有效的 IP 地址,version 可取值为 4 或 6;
  • isLength(value, min[, max]):检查值的长度是否在指定范围内,max 可选;
  • isBefore(value, [date]):检查值是否在指定日期之前,date 可选;
  • isAfter(value, [date]):检查值是否在指定日期之后,date 可选。

以下是一个示例代码:

-- -------------------- ---- -------
----- - -------- - - ------------------

-- ------
------------------------------------- ---------- -- ----
------------------------------------ -- ----
-------------------------------- -- ----- -- ----
------------------------------------ ------- ---- ------ -- ----

-- ------
-------------------------------------------------- -- ----
--------------------------------------------------- -- ----
---------------------------------------- ---- -- ----
----------------------------------------- ---- -- ----

-- ------
--------------------------------- ------------------- --- --------------------- -- -----
-------------------------------- ------------------- --- --------------------- -- ----

encrypt

encrypt 模块用于加密和解密敏感数据,以保护用户隐私和数据安全。

encrypt 提供了以下函数:

  • md5(str[, encoding]):生成指定字符串的 MD5 哈希值,encoding 可取值为 hex、base64 或 latin1;
  • sha1(str[, encoding]):生成指定字符串的 SHA-1 哈希值,encoding 同上;
  • sha256(str[, encoding]):生成指定字符串的 SHA-256 哈希值,encoding 同上;
  • aesEncrypt(text, key):使用 AES 算法加密指定明文和密钥,输出 Base64 编码的密文;
  • aesDecrypt(text, key):使用 AES 算法解密指定密文和密钥,输出原文字符串。

以下是一个示例代码:

-- -------------------- ---- -------
----- - ------- - - ------------------

-- -----
------------------------------- -------- -------- -- --------------------------------
-------------------------------- -------- ----------- -- ----------------------------
---------------------------------- -------- ----------- -- --------------------------------------------

-- ------
----- --------- - ------- --------
----- --- - ------- -----
----- ---------- - ----------------------------- -----
----- ------------- - ------------------------------ -----
------------------------ -- --------------------------------------------
--------------------------- -- ------ ------

hash

hash 模块用于生成和验证哈希值和摘要,以保证数据的完整性和可靠性。

hash 提供了以下函数:

  • crc32(str):生成指定字符串的 CRC32 哈希值;
  • adler32(str):生成指定字符串的 Adler32 哈希值;
  • sha256Hash(str[, options]):生成指定字符串的 SHA-256 摘要,options 可以指定编码、输出格式和哈希次数;
  • sha512Hash(str[, options]):生成指定字符串的 SHA-512 摘要,options 同上;
  • verifyHash(str, hash[, options]):验证指定字符串是否与哈希值匹配,options 同上。

以下是一个示例代码:

-- -------------------- ---- -------
----- - ---- - - ------------------

-- -----
------------------------------ ---------- -- ---------
-------------------------------- ---------- -- -----

-- ----
----- ---- - ------- --------
----- ---------- - --------------------- - --------- ------ ------- ------ ---------- - ---
----- ---------- - --------------------- - --------- ------ ------- ------ ---------- - ---
------------------------  -- ----------------------------------------------------------------
------------------------  -- -------------------------------------------------------------------------------------------------------------------------------

-- -----
----- ------- - --------------------- ----------- - --------- ----- ---
--------------------- -- ----

transform

transform 模块用于格式化和转换数据类型和结构,以适应不同的业务需求和数据源。

transform 提供了以下函数:

  • capitalize(str):将字符串的第一个字符转换为大写;
  • uppercase(str):将字符串中的所有字符转换为大写;
  • lowercase(str):将字符串中的所有字符转换为小写;
  • reverse(str):将字符串中的所有字符反转;
  • escapeXML(str):转义 XML/HTML 实体字符;
  • unescapeXML(str):恢复 XML/HTML 实体字符;
  • toArray(obj):将对象转换为数组;
  • toObject(arr):将数组转换为对象;
  • flatten(arr):将多维数组转换为一维数组;
  • groupBy(arr, key):将数组按指定键名分组。

以下是一个示例代码:

-- -------------------- ---- -------
----- - --------- - - ------------------

-- ---------
----- --- - ------- --------
--------------------------------------- -- ------ ------
-------------------------------------- -- ------ ------
---------------------------------------- -- ------ ------
------------------------------------ -- ------ ------

----- --- - ----------------- --------------------------------
-------------------------------------- -- ---------------------------- ------------------------------------------------------ 
--------------------------------------------------------------- ---------------------------------------------------------- -- ---------------- ------------------------------

----- --- - --- --- --- -------
------------------------------------ -- --- -- -- --

----- ---- - -
  ------ ------- ---- ----
  ------ ------- ---- ----
  ------ ------- ---- ----
--
----------------------------------- -------- -- ---- ------- ------- ---- ----- --- ------- ------- ---- ----- --- ------- ------- ---- -----

总结

vetted 是一个实用的 npm 包,它提供了多个模块和函数,用于检查和过滤不良数据、验证表单输入和数据格式、类型、长度等、加密和解密敏感数据、生成和验证哈希值和摘要、以及格式化和转换数据类型和结构。我们可以根据自己的业务需求和数据源选择合适的函数,提高应用的数据质量,保护用户隐私和安全。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005539581e8991b448d0c8e

纠错
反馈