工作需要,暫時要告別javascript 。趁這段時間不是特別忙,將一些javascript 技術(shù)總結(jié)下。
/**
* @brief 擴展原生字符串
* @author hechangmin@gmail.com
*/
var StringEx =
{
/**
* @brief 去除字符串前后空格
*/
trim : function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
},
/**
* @brief 去除左邊空格
*/
ltrim : function()
{
return this.replace(/(^\s*)/g, "");
},
/**
* @brief 去除右邊空格
*/
rtrim : function()
{
return this.replace(/(\s*$)/g, "");
},
/**
* @brief 避免XSS 攻擊
*/
avoidXSS : function()
{
var strTemp = this.replace(/&/g, "&");
strTemp = strTemp.replace(/</g, "<");
strTemp = strTemp.replace(/>/g, ">");
strTemp = strTemp.replace(/\"/g, """);
return strTemp;
} ,
/**
* @brief 獲取字符串的字節(jié)長度 漢字默認雙字節(jié)
*/
byteLength : function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
},
/**
* @brief 除去HTML標簽
* @example <div id="test1">aaaa</div> => aaaa
*/
removeHTML : function()
{
return this.replace(/<\/?[^>]+>/gi, '');
},
/**
* @brief 格式化字符串
* @example "<div>{0}</div>{1}".format(txt0,txt1)
*/
format : function()
{
var args = [];
for (var i = 0, il = arguments.length; i < il; i++)
{
args.push(arguments[i]);
}
return this.replace(/\{(\d+)\}/g, function(m, i)
{
return args[i];
});
},
/**
* @brief 字符串轉(zhuǎn)數(shù)字
*/
toInt : function()
{
return Math.floor(this);
}
}
for (var it in StringEx)
{
String.prototype[it] = StringEx[it];
}
* @brief 擴展原生字符串
* @author hechangmin@gmail.com
*/
var StringEx =
{
/**
* @brief 去除字符串前后空格
*/
trim : function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
},
/**
* @brief 去除左邊空格
*/
ltrim : function()
{
return this.replace(/(^\s*)/g, "");
},
/**
* @brief 去除右邊空格
*/
rtrim : function()
{
return this.replace(/(\s*$)/g, "");
},
/**
* @brief 避免XSS 攻擊
*/
avoidXSS : function()
{
var strTemp = this.replace(/&/g, "&");
strTemp = strTemp.replace(/</g, "<");
strTemp = strTemp.replace(/>/g, ">");
strTemp = strTemp.replace(/\"/g, """);
return strTemp;
} ,
/**
* @brief 獲取字符串的字節(jié)長度 漢字默認雙字節(jié)
*/
byteLength : function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
},
/**
* @brief 除去HTML標簽
* @example <div id="test1">aaaa</div> => aaaa
*/
removeHTML : function()
{
return this.replace(/<\/?[^>]+>/gi, '');
},
/**
* @brief 格式化字符串
* @example "<div>{0}</div>{1}".format(txt0,txt1)
*/
format : function()
{
var args = [];
for (var i = 0, il = arguments.length; i < il; i++)
{
args.push(arguments[i]);
}
return this.replace(/\{(\d+)\}/g, function(m, i)
{
return args[i];
});
},
/**
* @brief 字符串轉(zhuǎn)數(shù)字
*/
toInt : function()
{
return Math.floor(this);
}
}
for (var it in StringEx)
{
String.prototype[it] = StringEx[it];
}
test:
var strTest = " -{0}這里是擴展原生字符串test{1}- ";
alert(strTest.length); // output : 26
alert(strTest.ltrim().length); // 23
alert(strTest.rtrim().length); // 25
alert(strTest.byteLength()); // 36
alert(strTest.format("abc","def")); // -abc這里是擴展原生字符串testdef-
var strNumber = "89989";
alert(typeof strNumber.toInt()); // number
var domTest = document.getElementById("test1").outerHTML;
alert(domTest);
alert(domTest.avoidXSS());
alert(domTest.removeHTML());
alert(strTest.length); // output : 26
alert(strTest.ltrim().length); // 23
alert(strTest.rtrim().length); // 25
alert(strTest.byteLength()); // 36
alert(strTest.format("abc","def")); // -abc這里是擴展原生字符串testdef-
var strNumber = "89989";
alert(typeof strNumber.toInt()); // number
var domTest = document.getElementById("test1").outerHTML;
alert(domTest);
alert(domTest.avoidXSS());
alert(domTest.removeHTML());
可能 avoidXSS 部分由于blog 有 xss 處理,所以看不全。建議下載源代碼和 demo 試試。
下載 string.js 及 demo