工作需要,暂时要告别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, " & quot; " );
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];
}
* @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, " & quot; " );
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());
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