An SMS message splitter and part calculator with support for GSM and Unicode.
JavaScript

README.md

split-sms

NPM version Build Status Bower version NPM

An SMS message splitter with support for both GSM and Unicode written in JavaScript. GSM support is limited to GSM 03.38 with the extension table (see the Wikipedia article); no support for natural language shift tables exists at this time.

View the demo...

Getting Started

  1. Install via npm: npm install split-sms
  2. Include in your project: var splitter = require('split-sms');
  3. Start splitting messages! var info = splitter.split('JavaScript is fun!');

In the example above, info will be:

{
  "characterSet": "GSM",
  "parts": [
    {
      "content": "JavaScript is fun!",
      "length": 18,
      "bytes": 18
    }
  ],
  "bytes": 18,
  "length": 18,
  "remainingInPart": 142
}

Unicode example:

splitter.split('Snowman shows off! ☃');
{
  "characterSet": "Unicode",
  "parts": [
    {
      "content": "Snowman shows off! ☃",
      "length": 20,
      "bytes": 40
    }
  ],
  "bytes": 40,
  "length": 20,
  "remainingInPart": 50
}

In The Browser

You can use Bower to install split-sms components:

$ bower install split-sms --save

You can also use RawGit to link directly to specific versions of the built scripts. For example, the following URLs are for version 0.1.7:

Type URL
Source https://github.com/Codesleuth/split-sms/blob/0.1.7/dist/split-sms.min.js
RawGit dev https://rawgit.com/Codesleuth/split-sms/0.1.7/dist/split-sms.min.js
RawGit CDN https://cdn.rawgit.com/Codesleuth/split-sms/0.1.7/dist/split-sms.min.js

Alternatively, pull out the scripts in the dist/ directory and consume them.

To generate a browser consumable script yourself, clone the repo and run the following commands:

$ npm install
$ npm run build

This will generate the browser-compatible scripts in dist/ and export splitter to the global so you can then consume it in the browser as follows:

<html>
<head>
  <script src="split-sms.js"></script>
</head>
<body>
<script>
  var info = window.splitter.split('Hello!');
  document.write(JSON.stringify(info));
</script>
</body>

See the demo site for an example.