power-assert-util-string-width
Version:
calculates width of given string
31 lines (27 loc) • 721 B
JavaScript
;
var eaw = require('eastasianwidth');
function stringWidth (ambiguousCharWidth) {
return function widthOf (str) {
var i, code, width = 0;
for(i = 0; i < str.length; i+=1) {
code = eaw.eastAsianWidth(str.charAt(i));
switch(code) {
case 'F':
case 'W':
width += 2;
break;
case 'H':
case 'Na':
case 'N':
width += 1;
break;
case 'A':
width += ambiguousCharWidth;
break;
}
}
return width;
};
}
module.exports = stringWidth(2);
module.exports.narrow = stringWidth(1);