npm 包 split-sms 使用教程

在面对短信发送时,我们常常需要将长短信进行分割处理。这种情况下,我们可以使用 split-sms 这个 NPM 包来帮助我们解决这个问题。

split-sms 简介

split-sms 是一款专门用于将长短信进行分割的 Node.js 包。其实现原理基于 GSM 的 7 位压缩算法。使用该包,我们可以很方便的将长短信按照 GSM 短信规范进行分割,同时提供了一些可选的配置参数来满足不同的需要。

split-sms 安装

我们可以使用 npm 进行 split-sms 的安装:

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

split-sms 使用

使用 split-sms 很简单,我们只需要传入待分割的长短信内容和配置参数,即可得到分割后的短信数组。以下为使用示例:

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

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

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

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

可以看到,splitSMS() 函数返回了一个由短信内容组成的数组,数组的最后一项为短信签名。

split-sms 配置参数说明

在上面的示例中,我们传入了 options 配置参数,下面对几个配置参数进行一下详细说明。

encoding

encoding 是短信编码格式,支持 GSMUCS2 两种格式,默认为 GSM

对于 GSM 编码格式,一个字符将被编码成一个 7 位二进制数,一个字母或数字需要 7 位二进制数表示,如果字符集中不存在该字符,则会发生截断或使用未知字符替代。因此,我们需要确认我们的短信内容都在 GSM 字符集中。

对于 UCS2 编码格式,一个字符将被编码成一个 16 位二进制数。 UCS2 编码支持的字符范围比 GSM 更广,可以表示所有语言的字符。但是,一个字符编码需要占用 16 位,因此一个短信可包含的字符数将减少一半,导致分割为多条短信的可能性更高。此外,对于某些短信网关,需要使用 UCS2 编码格式才能正常发送带有表情符号的短信。

smsMaxSize

smsMaxSize 用于指定单条短信允许的最大长度。该参数默认为 160 个字符,对于 UCS2 编码格式则为 70 个字符。当一条短信的长度超过该限制时,该短信将会被分割成多条。

splitFunc

splitFunc 是一个自定义的分割函数,用于支持不同的短信网关。在实际使用中,不同的短信网关可能对短信的内容、格式、签名等方面都有不同的要求。因此,需要我们自己定义一个合适的分割函数来满足我们的需求。

splitFunc 接收一个字符串参数,表示待分割的长短信内容,需要返回一个数组,表示分割后的短信列表。以下为一个自定义的分割函数示例:

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

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

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

在这个例子中,我们自定义了一个分割函数,使用自定义的短信签名 [安装商],并将每一条短信的字符长度限制为 160 个字符。

forceSplit

forceSplit 表示是否强制分割短信。当该参数值为 true 时,无论短信内容是否超过短信长度限制,都会将其分割为多条短信。默认情况下,该参数值为 false,即当短信长度小于等于字数限制时,不会强制分割短信。

总结

split-sms 是一款非常实用的类库,当我们面对长短信发送时,可以借助它提供的分割函数分割长短信。它支持 GSM 和 UCS2 编码,同时提供了一些可选的配置参数,可满足不同的需求。

在实际的开发中,我们可以将其用于短信发送、短信验证码等场景,能够提升我们的开发效率,减少对短信相关业务的困扰。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600670a58ccae46eb111f14e


猜你喜欢

  • npm 包 wechat-payment-node 使用教程

    前言 微信支付是一种常用的在线支付方式,它可以实现多种支付场景的支付功能。在前端开发中,使用 wechat-payment-node 这个 npm 包可以快速集成微信支付功能,省去了手动编写支付相关代...

    4 年前
  • npm 包 wechat-pay2 使用教程

    微信支付作为当下互联网行业最主流的支付方式之一,受到了广泛的关注和应用。在前端开发中,使用npm包进行微信支付集成非常方便和高效。本文将介绍如何使用npm包 wechat-pay2 进行微信支付集成。

    4 年前
  • npm 包 wechat-pay-node 使用教程

    前言 微信支付是一款非常流行的支付方式,随着电商和移动支付的兴起,越来越多的人开始使用微信支付进行付款。而在开发过程中,如何处理微信支付相关的逻辑就成为了一个重要的问题。

    4 年前
  • npm 包 wechat-placekitten 使用教程

    在前端开发中,我们经常需要添加一些图片来美化我们的页面,而 placekitten.com 是一个提供随机猫咪图片的网站,可以方便我们进行图片占位符的添加。但是,如果是在微信小程序中使用,该网站就无法...

    4 年前
  • npm 包 wechat-payment-sdk 使用教程

    前言 微信支付是一项非常重要的支付方式,无论是在电商平台还是服务行业都有广泛应用。wechat-payment-sdk 是一个由 Node.js 编写的小型的微信支付 API,它可以在 Node.js...

    4 年前
  • npm 包 whyyoulittle 使用教程

    概述 why you little 是一款适用于前端开发的 npm 包,它可以方便地帮助我们生成网络请求的参数,让我们在开发应用时更加方便快捷。 安装 使用 npm 安装 whyyoulittle: ...

    4 年前
  • npm 包 whartonapi 使用教程

    在前端开发中,我们经常需要从第三方接口获取数据来渲染页面或实现某些功能。而使用 npm 包可以很方便地集成这些接口到我们的项目中。本篇文章将介绍一个有关金融管理的 npm 包 whartonapi 的...

    4 年前
  • npm 包 what 使用教程

    什么是 npm 包 what? npm 包 what 是一款用于检查 npm 包版本更新情况的命令行工具。使用该工具可以方便的了解所依赖 npm 包的最新版本以及当前项目中所使用的版本是否过时。

    4 年前
  • npm 包 what-app 使用教程

    前端开发中常常需要将数据以通知、消息等形式展示给用户,而 what-app 是一个基于 web 的通知工具包,可以方便地实现各种通知方式。本文将介绍 what-app 的使用方法,包括安装、配置以及基...

    4 年前
  • npm 包 what-class 使用教程

    介绍 在前端开发中,我们经常需要动态地控制元素的类名,以适应不同的交互状态或样式需求。然而,手动管理类名往往会让代码变得冗长和易错。在这种情况下,使用一个专门管理类名的 npm 包就可以方便我们的开发...

    4 年前
  • npm 包 what-do-i-depend-on 使用教程

    在进行前端开发的过程中,我们通常需要使用很多第三方库和工具包来辅助我们开发。不同的工具包之间又会存在依赖关系。在面对众多的依赖关系时,我们是否常常感到不知所措,不知道从何下手呢?这时,我们需要查看每个...

    4 年前
  • npm 包 what-credit-card 使用教程

    前言 在开发前端应用的过程中,支付模块是不可或缺的一环。而识别用户输入的银行卡信息也是必要的,这点对于支付宝、微信、银联等支付机构来说尤其重要。为此,出现了很多识别银行卡的工具,而 what-cred...

    4 年前
  • npm 包 welcome 使用教程

    简介 npm 是 Node.js 的包管理器,它可以让你方便地安装、更新和删除 Node.js 模块。 而 welcome 是一款可以在 CLI(命令行界面)中生成欢迎信息的 npm 包,让你可以在命...

    4 年前
  • npm 包 welcome-to-node 使用教程

    在前端开发领域,使用 npm 包已经成为不可或缺的一部分。npm 是一个强大的包管理器,它为开发者们提供了丰富的工具和资源,方便了我们开发、测试和部署代码。本文将介绍一款名为 welcome-to-n...

    4 年前
  • npm 包 wechat-platform 使用教程

    背景介绍 微信平台一直是移动应用中应用最广泛的创业和推广平台,广告效果极佳。它可以帮助企业在微信上建立自己的公众号,借助其强大的用户群体实现推广。目前,几乎所有的企业都在微信上开展自己的业务活动。

    4 年前
  • npm 包 whynomatch 使用教程

    在前端开发中,我们经常会遇到处理路由的需求。路由是指网站或 APP 中不同页面之间跳转的机制,比如用户在浏览器中访问某个网站,就需要经过不同的路由来显示不同的页面或内容。

    4 年前
  • npm 包 whynopadlock 使用教程

    在前端开发中,网站安全问题越来越受到重视。其中一个常见的安全问题就是网站页面强制使用 HTTPS 协议但是存在 HTTP 协议加载的资源,这就会导致浏览器出现“页面不安全”的提示。

    4 年前
  • npm 包 whytobe-moment 使用教程

    简介 whytobe-moment 是一个基于 moment.js 封装的 npm 包,旨在提供更简便的日期时间操作方法。相比于 moment.js,whytobe-moment 提供了更加直观、易于...

    4 年前
  • npm 包 whytobe-swagger-mongoose 使用教程

    什么是 whytobe-swagger-mongoose whytobe-swagger-mongoose 是一个基于 Node.js 平台的 npm 包,它可以让你通过 Swagger API 自动...

    4 年前
  • npm 包 wechat-promise 使用教程

    前言 wechat-promise 是一个基于 Promise 的 Node.js 微信 SDK,用于在 Node.js 平台上开发微信公众号应用。它能够让开发者使用 Promise 来进行微信的常用...

    4 年前

相关推荐

    暂无文章