Projekt

Obecné

Profil

Stáhnout (558 Bajtů) Statistiky
| Větev: | Revize:
1
'use strict';
2

    
3
// https://mathiasbynens.be/notes/javascript-encoding
4
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
5
module.exports = function ucs2length(str) {
6
  var length = 0
7
    , len = str.length
8
    , pos = 0
9
    , value;
10
  while (pos < len) {
11
    length++;
12
    value = str.charCodeAt(pos++);
13
    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
14
      // high surrogate, and there is a next character
15
      value = str.charCodeAt(pos);
16
      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
17
    }
18
  }
19
  return length;
20
};
(9-9/10)