javascript的String擴展

/**
 * 統計字節數,漢字佔2個字節
 * 
 * @author Lin Chenglin 2012-11-19
 * @return
 */
String.prototype.lengthOfByte = function() {
	return this.replace(/[^\x00-\xff]/g, "**").length;
}

/**
 * 以字節數截取字符串,若最後一個是雙字節則捨棄
 * 
 * @param start
 *            起始字節
 * @param length
 *            字節長度
 * @author Lin Chenglin 2012-11-23
 */
String.prototype.substrOfByte = function(start, length) {
	var num = 0;// 字節數
	var realLength = 0;// 實際應截取的字符長度
	for ( var i = start; i < this.length; i = i + 1) {
		var c = this.charAt(i);
		if (/[^\x00-\xff]/.test(c)) {// 若是雙字節
			num = num + 2;
		} else {// 若是單字節
			num = num + 1;
		}
		if (num <= length) {
			realLength = realLength + 1;// 累加一個字符的長度
		} else {
			break;
		}
	}
	return this.substr(start, realLength);
}

/**
 * 去除字符串的前後空字符
 * 
 * @return
 */
String.prototype.trim = function() {
	return this.replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
}

/**
 * 字符串替換全部
 * 
 * @param s1
 * @param s2
 * @return
 */
String.prototype.replaceAll = function(s1, s2) {
	return this.replace(new RegExp(s1, "gm"), s2);
}

/**
 * 判斷字符串是否是以str爲開頭的
 * 
 * @param str
 * @return
 */
String.prototype.startWith = function(str) {
	if (str == null || str == "" || this.length == 0
			|| str.length > this.length)
		return false;
	if (this.substr(0, str.length) == str)
		return true;
	else
		return false;
	return true;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章