Javascript で正規表現を使わない trim()

書いてみたけど正規表現で str.replace(/^\s+|\s+$/g, "") した方が速いのでお蔵入り。

function trim(str) {
	var b = 0;
	var d = str.length;
	while (b < d && str.charCodeAt(b) <= 0x20) b++;
	while (b < d && str.charCodeAt(d - 1) <= 0x20) d--;
	return str.substring(b, d);
}

ロジック自体は java.lang.String の trim() をパクったのでバグはないはず…。