半角と全角の混合でsubstrを使用

by iwbjp

JavaScript

var str = "123★☆★☆★☆★☆★☆★☆";

function mbStrcut(str, size){
	if(!str) str = '';
	var suffix = '…';
	var b = 0;
	for(var i=0, len=str.length; i<len; i++){
		b += str.charCodeAt(i) <= 255 ? 1 : 2;
		if(b > size){
			return str.substr(0, i) + suffix;
		}
	}
	return str;
}

console.log(mbStrcut(str, 10));