npm 包 vetted 使用教程

什么是 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


猜你喜欢

  • npm包trace-inline-parse使用教程

    前言 在前端开发中,我们经常需要处理代码的错误和异常信息。通常情况下,JavaScript会在控制台中输出错误信息,而这些信息通常是难以理解的。为了更好地排查问题,我们需要一种工具,能够帮助我们更好地...

    2 年前
  • npm 包 babel-plugin-react-intl-messages-generator 使用教程

    简介 在前端开发中,我们通常会使用 React 来构建用户界面,而国际化是一个非常重要的功能。React 社区有一个很流行的国际化库 react-intl,它可以根据不同的语言动态加载相应的语言包。

    2 年前
  • npm 包 hyperterm-blackops 使用教程

    在日常的前端开发过程中,我们经常需要使用命令行工具来进行一些操作,如代码管理、打包、部署等等。而一个好的命令行工具可以大大提高我们的开发效率,使得我们的工作更加高效。

    2 年前
  • npm 包 react-md-comp 使用教程

    简介 React 是一种用于构建用户界面的 JavaScript 库,它使得构建大规模、可维护的 web 应用程序变得更加简单。而 npm 则是一个面向 Node.js 的包管理器,它可以帮助我们在项...

    2 年前
  • npm 包 util-deep-merge 使用教程

    前言 在前端开发过程中,经常需要将两个对象合并,而 util-deep-merge 就是一个非常方便的 npm 包,用来合并两个深度嵌套的对象。本文将详细介绍如何使用 util-deep-merge ...

    2 年前
  • npm 包 lled 使用教程

    在前端开发中,我们常常需要使用一些工具来帮助我们更好地完成代码实现。npm 包是其中一个非常重要的工具。其中,lled 这个 npm 包可以帮助我们更加方便地实现代码的调试和编辑。

    2 年前
  • npm 包 babel-preset-lb 使用教程

    在前端开发中,我们会经常使用到 Babel 来将 ES6+ 的代码转换成可以被浏览器识别的 ES5 代码。而 babel-preset-lb 就是一个专门为了适应联邦银行内部技术架构而开发的 Babe...

    2 年前
  • npm 包 react-simple-pager 使用教程

    前言 在前端开发中,我们经常需要在列表或表格等数据展示页面中实现分页功能。如果每次都需要从头编写分页组件代码,会浪费很多时间和精力。因此,社区中涌现出很多分页组件库,其中 react-simple-p...

    2 年前
  • npm 包 jsonschema-parquet 使用教程

    前言 jsonschema-parquet 是一个基于 Node.js 的 npm 包,能够将 JSON Schema 格式的数据转换成 Apache Parquet 格式。

    2 年前
  • npm 包 handlebars-helper-import 使用教程

    前言 Handlebars 是一款流行的 JavaScript 模板引擎,它能够将数据和模板进行结合,生成 HTML 页面。但是 Handlebars 的模板代码比较冗长,如果在模板中有嵌套的结构,编...

    2 年前
  • npm 包 strongman 使用教程

    在前端开发中,使用 npm 包管理工具是非常重要的一步。其中,strongman 这个 npm 包是一个非常实用的工具,可以帮助我们管理、调试和发布自己的 npm 包。

    2 年前
  • npm 包 webpack-string-replacer-plugin 使用教程

    简介 webpack-string-replacer-plugin 是一个基于 webpack 的插件,用于快速替换文本内容。它可以将指定的字符串替换为指定的目标字符串,可以应用于多种场景,如替换环境...

    2 年前
  • npm 包 instant-proxy 使用教程

    在前端开发中,我们经常需要进行接口调试、数据 mock 等操作。而在实际开发中,往往需要联调真实数据,因此需要一款方便快捷的代理工具。本文将介绍一款 npm 包 instant-proxy 的使用教程...

    2 年前
  • npm 包 delightful-keycodes 使用教程

    前言 在前端开发中,我们经常需要监听用户的按键事件。delightful-keycodes 是一个可以帮助我们更方便地处理按键码的 npm 包。在本文中,我将会详细介绍 delightful-keyc...

    2 年前
  • npm 包 vue-koa-template 使用教程

    介绍 在前端开发中,Vue 和 Koa 都是非常流行的技术。Vue 是一款现代化的 JavaScript 框架,用于构建用户界面。而 Koa 是一个 Node.js 的 Web 框架,专注于增强 We...

    2 年前
  • npm 包 zips 使用教程

    现在的前端项目越来越复杂,往往需要打包、压缩多个文件,然后上传至服务器,这个过程不仅繁琐,而且很容易出错,而 zips 这个 npm 包正好可以解决这个问题。本文将会详细介绍 zips 的使用方法,并...

    2 年前
  • npm 包 bench-rest-jonahss 使用教程

    在前端开发过程中,我们经常需要测试 API 接口的性能以及并发访问能力。为了满足这种需求,我们可以使用 npm 包 bench-rest-jonahss。它是一个基于 Node.js 的压力测试工具,...

    2 年前
  • npm 包 jest-scenario 使用教程

    在前端项目中,单元测试是非常重要的一个环节。而为了更有效地编写测试用例,我们需要使用一些工具帮助我们完成这个任务。其中,jest 是一个非常流行的单元测试框架,而 jest-scenario 则是一个...

    2 年前
  • npm 包 gulp-htmlformhint 使用教程

    简介 在前端开发中,表单是一个非常重要的组件,需要我们加以重视。其中表单的校验就是一个非常重要的环节,可以有效避免用户输入不合法的信息。本文将介绍一个利用 gulp 和 htmlhint 进行表单校验...

    2 年前
  • npm包faceta-sass-mixins使用教程

    Sass是一种CSS预处理器,使得CSS样式的编写更加简单和易于维护。而faceta-sass-mixins是一个npm包,提供了各种常用的Sass Mixin,让我们的开发变得更加高效并且代码更加易...

    2 年前

相关推荐

    暂无文章