strWidth.js 409 B

1234567891011121314151617
  1. var stripAnsi = require('./stripAnsi');
  2. var isFullWidth = require('./isFullWidth');
  3. exports = function(str) {
  4. str = stripAnsi(str);
  5. var width = 0;
  6. for (var i = 0, len = str.length; i < len; i++) {
  7. var c = str.codePointAt(i);
  8. if (c <= 31 || c === 127) {
  9. continue;
  10. }
  11. width += isFullWidth(c) ? 2 : 1;
  12. }
  13. return width;
  14. };
  15. module.exports = exports;