`
reallyafei
  • 浏览: 98785 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一些适用的js扩展方法

阅读更多

1.去掉数组中重复的值

Array.prototype.unique = function() {
	var data = this || [];
    var a = {}; //声明一个对象,javascript的对象可以当哈希表用
    for (var i = 0; i < data.length; i++) {
        a[data[i]] = true;  //设置标记,把数组的值当下标,这样就可以去掉重复的值
    }
    data.length = 0; 
    
    for (var i in a) { //遍历对象,把已标记的还原成数组
        this[data.length] = i; 
    } 
    return data;
};

var a = new Array("5","7","7");
alert(a);
alert(a.unique());

 

2.删除数组中指定的值

Array.prototype.remove = function(val) { 
    for(var i = 0; i < this.length; i++) { 
        if(this[i] == val) { 
        	for(var j = i; j < this.length - 1; j++)
            	this[j] = this[j + 1]; 
            this.length -= 1;
        }
    }    
}

 

3.在字符串的左边填充一些特定的字符

String.prototype.lpad = function(len, s) {
	var a = new Array(this);
	var n = (len - this.length);
	for ( var i = 0; i < n; i++) {
		a.unshift(s);
	}
	return a.join("");
}
 

 

4.在字符串的右边填充一些特定的字符

String.prototype.rpad = function(len, s) {
	var a = new Array(this);
	var n = (len - this.length);
	for ( var i = 0; i < n; i++) {
		a.push(s);
	}
	return a.join("");
}

 

 

5.获取星期几

function getWeek() {
	var a = new Array("周日", "周一", "周二", "周三", "周四", "周五", "周六");
	var d = new Date().getDay();
	return a[d];
}

 

6.获取日期

function getDate() {
	var mydate = new Date();
	var y = mydate.getYear();
	var m = String(mydate.getMonth() + 1).lpad(2, "0");
	var d = String(mydate.getDate()).lpad(2, "0");
	var a = new Array(y, m, d);
	return a.join("-");
}

 

7.把字符串的首字母转化为大写

String.prototype.initialsToUpper = function() {
	return this.substring(0,1).toUpperCase().concat(this.substring(1));
};

 

8.判断一个字符串中是否包含某字符

String.prototype.contains = function(str) {
	return this.indexOf(str) > -1 ? true : false;
};

 

9.去掉字符串的空格

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

 

10.操作表单元素的几个js方法

//删除下拉框选项
function removeAllOptions(obj) {
	for (var k = obj.length - 1; k > 0; k--) {
		obj.remove(k);
	}
}

//添加下拉框选项
//其中data是action传过来的TreeMap值
function appendAllOptions(obj, data) {
	removeAllOptions(obj);
//	data = data.substr(1, data.length - 2);
	var arg = data.split(",");
	for (var i = 0; i < arg.length; i++) {
		var val = arg[i].split("=");
		obj.add(new Option(val[1], val[0]));
	}
}

//通过已选中checkbox的id获取当前行第n列的值,并组合成字符串返回
function getTDText(chkId, n) {
	var temp = "";
	var ids = chkId.split(",");
	for (var i = 0; i < ids.length; i++) {
		var tr = $(ids[i]).parentElement.parentElement;
		if (temp == "") {
			temp = tr.cells[n].innerText.trim();
		} else {
			temp += "," + tr.cells[n].innerText.trim();
		}
	}
	return temp;
}

//获取一组radio选中项的值
function getRadioValue(name) {
    var obj = document.getElementsByName(name);
    if (obj != null) {
        for(i = 0; i < obj.length; i++) {
            if (obj[i].checked) {
                return obj[i].value;            
            }
        }
    }
    return null;
}

//全选或取消全选
function chkAll(ele) {
	var objArray = document.getElementsByName("chk");
	for (var i = 0; i < objArray.length; i++) {
		objArray[i].checked = ele.checked;
	}
}

//获取选中的ID
function getChkVal() {
	var ids = "";
	var objArray = document.getElementsByName("chk");
	for (var i = 0; i < objArray.length; i++) {
		if (objArray[i].checked) {
			if (ids == "") {
				ids = objArray[i].id;
			} else {
				ids += "," + objArray[i].id;
			}
		}
	}
	return ids;
}

 

11.几个验证的js方法

//验证是否为合法的手机号码
String.prototype.isMobile = function() { 
	return /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.trim()); 
};

//验证是否为合法的电话号码或传真
String.prototype.isPhone = function() { 
	return /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.trim()); 
};

//验证是否为合法的Email
String.prototype.isEmail = function() {
	return /^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/.test(this.trim());
};

//验证是否为合法的邮编
String.prototype.isPost = function() {
	return /^\d{6}$/.test(this.trim());
};

//验证是否为合法的网址
String.prototype.isUrl = function() {
	var strRegex = "^((https|http|ftp|rtsp|mms)://)"  
	+ "(([0-9a-z_!~*’().&=+$%-]+: )?[0-9a-z_!~*’().&=+$%-]+@)?" //验证ftp的user@  
	+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // 验证IP形式的URL  
	+ "|" // 允许IP和DOMAIN(域名)  
	+ "([0-9a-z_!~*’()-]+\.)*" // 域名- www.  
	+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名  
	+ "[a-z]{2,6})" // 一级域名  
	+ "(:[0-9]{1,4})?" // 端口 	  
	var re = new RegExp(strRegex);  
	return re.test(this.trim());
};

 

12.清除非数字包含小数点

function clearNoNum(obj) {
			//先把非数字的都替换掉,除了数字和.
			obj.value = obj.value.replace(/[^\d.]/g,"");
			//必须保证第一个为数字而不是.
			obj.value = obj.value.replace(/^\./g,"");
			//保证只有出现一个.而没有多个.
			obj.value = obj.value.replace(/\.{2,}/g,".");
			//保证.只出现一次,而不能出现两次以上
			obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
		}

   onkeyup="clearNoNum(this)" (这个可以输入小数点)  或者 onkeyup="value=value.replace(/[^\d]/g,'')" (这个只能输入数字)

 

 

13.四舍五入并控制小数位数

Number(12345.67890).toFixed(2);
分享到:
评论
2 楼 minxinxin2010 2013-05-03  
1 楼 walkingp 2010-08-02  

还有移除数组中指定项
  Array.prototype.remove=function(dx)
  {
    if(isNaN(dx)||dx>this.length){return false;}
    for(var i=0,n=0;i<this.length;i++)
    {
        if(this[i]!=this[dx])
        {
            this[n++]=this[i]
        }
    }
    this.length-=1
  }

相关推荐

    chromium浏览器集成JS扩展指南_4.docx

    本文档旨在为开发人员提供一个详细的指导方案,介绍如何在Chromium浏览器中集成JavaScript扩展。特别地,本文将聚焦于一个具体的示例——移植NGB模块中的`NGBFileManager`接口与`NGBDirectory`接口至JavaScript环境...

    js横向扩展树

    JavaScript中的横向扩展树是一种在网页中展示数据结构的交互式方式,特别适用于处理层次关系复杂的组织结构或文件系统。这种树形布局使得用户可以水平滚动查看节点,而不是传统的垂直展开和折叠。在这个“js横向扩展...

    VC下面Web浏览器控件实现js脚本扩展

    总结来说,"VC下面Web浏览器控件实现js脚本扩展"是一个涉及ActiveX控件、JavaScript扩展、COM接口和跨语言交互的复杂技术。通过这一技术,开发者可以充分利用C++的强大功能,为Web应用程序带来更丰富的交互体验。

    Javascript面向对象扩展库(lang.js)

    `lang.js`是一个针对JavaScript的面向对象扩展库,专门为了弥补原生JavaScript在面向对象编程上的不足而设计。 `lang.js`库引入了类的概念,使得JavaScript可以更像传统的面向对象语言那样进行开发。在JavaScript中...

    100行超适用纯js验证控件支持自定义UI扩展

    本话题聚焦于一个特别的案例——"100行超适用纯js验证控件支持自定义UI扩展"。这个标题暗示我们,我们将探讨一个轻量级、高效且具有高度可定制性的JavaScript验证解决方案。 在描述中提到的链接...

    web前端打开弹出窗口在扩展屏幕显示(presentation谷歌版本)

    4. **发送内容**:一旦连接建立,我们就可以通过`PresentationConnection.send()`方法将HTML、CSS或JavaScript代码发送到扩展屏幕上,实现在大屏幕上显示内容。 在描述中提到,此demo需要通过服务器方式启动,这...

    (js)静态与非静态方法

    在JavaScript中,实例方法通常是通过扩展类的`prototype`属性来定义的。 #### 作用 1. **状态依赖**:实例方法能够访问和修改实例的状态,这意味着它们可以根据实例的具体情况进行操作。 2. **多态性**:实例方法...

    完美可无限扩展万JS万年历

    "完美可无限扩展万JS万年历"是一个强大的前端日期选择器组件,专门设计用于JavaScript环境中,能够同时显示阳历和阴历,提供无限的扩展性。它旨在为开发者提供一个灵活、高效的解决方案,以便在各种Web应用中轻松...

    webBrowser扩展浏览器通过JS代码与串口通讯.rar

    本主题聚焦于“webBrowser”扩展浏览器如何利用JavaScript(JS)代码与串口进行通信,以及如何进行UDP和TCP通讯,还有进行本地电脑的截图操作。下面将详细解析这些知识点。 首先,"webBrowser扩展浏览器"是指那些...

    JS调用后台带参数的方法

    根据给定的信息,本文将详细解释“JS调用后台带参数的方法”。这涉及到前端JavaScript与后端服务之间的交互,特别是如何在发送请求时携带参数。 ### JS调用后台带参数的基本概念 在Web开发中,前端(通常是...

    VS2010扩展管理器中不错的联机插件

    - 插件支持自动匹配折叠JavaScript方法或代码块,这有助于提高代码的可读性和整洁度。 - **应用场景:** - 在编辑复杂的JS文件时,此功能可以让开发者更清晰地看到代码结构,便于管理和维护代码。 - **实现效果...

    statisticsjs用于统计数据分析的扩展开源JavaScript库

    "statisticsjs用于统计数据分析的扩展开源JavaScript库" 指出我们讨论的是一个名为statistics.js的JavaScript库,它专门用于统计数据分析。这个库是开源的,意味着任何人都可以查看、使用其代码,并对其进行修改或...

    基于JavaScript的ECharts扩展示例(词云,水球图,烟花秀,关系图谱)

    在本压缩包中,你将找到四个独特的ECharts扩展示例:词云图、水球图、烟花秀以及关系图谱。这些示例展示了ECharts在数据可视化领域的强大能力和创新性。 1. **词云图**: 词云图是一种用图形元素表示文本数据的...

    EXT TREE 扩展CHECKBOX JS

    总的来说,EXT TREE扩展CHECKBOX JS是一项实用的功能,它使得EXT JS的树形组件能够更好地满足多选和交互的需求,适用于那些需要用户对层次结构数据进行选择的应用场景。通过深入理解并利用`Ext.tree.TreeCheckNodeUI...

    JS获取文件大小方法小结

    这个方法只适用于支持ActiveX的IE浏览器,并且可能会触发安全警告,可以通过将文件扩展名更改为`.hta`来规避这些警告,但这通常不建议,因为它可能引入安全风险。 方法二:利用img的`dynsrc`属性 在某些早期版本的...

    正则表达式扩展类

    1. **扩展方法**:C#允许通过静态类和扩展方法实现对现有类型的功能扩展。例如,可以创建一个名为`RegexExtensions`的静态类,包含上述的扩展方法,使`Regex`类的功能更加强大。 2. **泛型支持**:考虑将扩展方法...

    delphi与javascript交互

    以上就是Delphi与JavaScript交互的一些常见方式,每种方法都有其适用场景和优缺点。开发者应根据项目需求选择合适的技术方案。在实际应用中,可能需要结合多种技术,以实现更复杂的功能和优化性能。

    FullCalendar扩展双击事件

    本文将深入探讨如何在FullCalendar中实现双击事件功能,包括源码修改和扩展方法,以兼容不同版本。 ### 1. 源码版双击事件 在源码版FullCalendar中添加双击事件功能,你需要直接修改FullCalendar的核心代码。首先...

    js dtree无限级扩展的树形菜单.rar

    本文将深入探讨“js dtree无限级扩展的树形菜单”这一主题,这是一种基于JavaScript的树形菜单插件,适用于构建多层次、可扩展的导航系统。 首先,我们来了解“js dtree”的基本概念。js dtree 是一个JavaScript库...

Global site tag (gtag.js) - Google Analytics