日期:2014-05-16  浏览次数:20366 次

为JavaScript中的String添加一些常用方法
/*
* 因为经常用到这些方法,所以就以面向对象的方法把它附加到String上。
* 使用方法如下:
* 1、"2008-04-02 10:08:44".toDate().getDate(); //结果为2
* 2、"12.4".toFloat(3); //结果为"12.400"这个字符串
* 3、"12".toInt() //结果不12
* 4、"55".add("55") //结果为110
* --------------------------
*
* String.prototype.toDate() //将格式为2008-04-02 10:08:44的字符串转成日期(String对象的值必须为: 2008-04-02 10:08:44)
* String.prototype.toFloat(precision) //将原来用字符串表示的十进数转成十进制浮点数: precision为精度
* String.prototype.toInt() //将原来用字符串表示的十进数转成十进制整数
* String.prototype.add(addend) //将两个原来用字符串表示的十进数相加后当作字串返回 : addend为加数
* String.prototype.shiftScale(scale) //将十进制转其他进制代 : scale为进制 如2,8,16
* String.prototype.scaleShift(preScale,nextScale)  // 各进制互相转换且this对象必须是整数
* String.prototype.isEmail() //判断字符串是否符合邮箱的格式
* String.prototype.isMoneyType() //判断字符串是否符合钱的格式
* String.prototype.isXmlTag() //判断字符串是否符合xml标签的格式
* String.prototype.isIp() //判断字符串是否符合IP地址格式
* String.prototype.trimL() //去掉字符串左边的空白字符
* String.prototype.trimR() //去掉字符串右边的空白字符
* String.prototype.trim() //去掉字符串左右两边的空白字符
* String.prototype.trimAll() //去掉字符串的全部空白字符
* String.prototype.isEmpty() //字符串是否为空串
*
* clearNoNum(obj) //保证obj.value为数字
*/

String.prototype.toDate = function(){
var str = this.replace(/-/g,"/");
return (new Date(str));
}

String.prototype.toFloat = function(precision){
precision = precision || 2;
return parseFloat(this,10).toFixed(precision);
}

String.prototype.toInt = function(){
return parseInt(this,10).toString();
}

String.prototype.add = function(addend){
var sum = parseFloat(this,10) + parseFloat(addend,10);
return sum+"";
}

/**
JS十进制转其他进制代码如下
var m = 10;
document.write(m.toString(2) + "<br>"); // 显示为 1010  二进制
document.write(m.toString(8) + "<br>"); // 显示为 12  8进制
document.write(m.toString(10) + "<br>"); // 显示为 10  十进制
document.write(m.toString(16) + "<br>"); // 显示为 a, 十六进制
*/

String.prototype.shiftScale = function(nextScale){
return parseFloat(this).toString(nextScale);
}

/**
* 各进制互相转换
* this对象必须是整数
* @param preScale 原是是几进制数
* @param nextScale  要转换成几进制数
*/
String.prototype.scaleShift = function(preScale,nextScale){
return parseInt(this,preScale).toString(nextScale);
}

/**
* 匹配正则表达式
* @param {} regex 正则表达式
* @return {Boolean}
*/
String.prototype._match = function(regex) {
if(this.match(regex)){
return true;
} else {
return false;
}
}

String.prototype.isEmail = function(){
return this._match(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/);
}

String.prototype.isMoneyType = function(){
return this._match(/^(-?\d+)(\.\d{0,2})?$/);
}

String.prototype.isXmlTag = function(){
return this._match(/^<.+?>$/);
}

String.prototype.isIp = function() {
return this._match(/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/);
}

String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");


String.prototype.trimL = function() {
return this.replace(/(^\s*)/g, "");


String.prototype.trimR = function() {
return this.replace(/(\s*$)/g, "");
}

String.prototype.trimAll = function() {
return this.replace(/\s/g,"");
}

String.prototype.isEmpty = function(){
return this.toString() === "" ? true : false;
}

/**
*   文本框只允许输入数字或小数点时  调用此方法。
*   obj:文本框对象
*   示例:onkeyup="clearNoNum(this)"