工作需要,暂时要告别javascript 。趁这段时间不是特别忙,将一些javascript 技术总结下。
/**
* @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 获取字符串的字节长度 汉字默认双字节
*/
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 字符串转数字
*/
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());
可能 avoidXSS 部分由于blog 有 xss 处理,所以看不全。建议下载源代码和 demo 试试。
下载 string.js 及 demo
posted on 2010-03-23 20:31
-274°C 阅读(3756)
评论(0) 编辑 收藏