/**
* 扩展基础类
* 得到字符串的长度,包括中文和英文
**/
String.prototype.charlen = function() {
var arr = this.match(/[^\x00-\xff]/ig);
return this.length + (arr == null ? 0 : arr.length);
}
/**
* 扩展基础类
* 格式化字符串${0} -> 参考printf %s
**/
String.prototype.format = function() {
var args = arguments;
return this.replace(/\$\{(\d+)\}/g,
function(m, i){
return args[i];
});
}
/**
* 扩展基础类
* 字符串首尾去空格
**/
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
/**
* 扩展基础类
* 字符串包含字符串判断
**/
String.prototype.contains = function(sub) {
return this.indexOf(sub) != -1;
}
/**
* 扩展基础类
* 字符串比较大小
**/
String.prototype.compare = function(b) {
if(!b)
return -1;
if(this.length != b.length)
return this.length - b.length;
var i = 0;
for (; i < this.length; i++){
var val = this.charCodeAt(i) - b.charCodeAt(i);
if(val != 0)
return val;
}
return 0;
}
/**
* 扩展基础类
* 替换字符
**/
String.prototype.replaceLen = function(start, len, replaced) {
if(!len)
return this;
if(start >= this.length)
return this;
var returnSeg = '';
var returnSeg2 = '';
var i = 0;
for (; i < this.length; i++){
var c = this.charAt(i);
if(i < start)
returnSeg += c;
if(i >= start + len)
returnSeg2 += c;
}
return returnSeg + replaced + returnSeg2;
}
/**
* 扩展基础类
* 替换字符,这个在替换填入比较有用,比如***天***小时 替换为 <input />天<input />小时
**/
String.prototype.replaceChar = function(target, replaced, start) {
if(!target)
return this;
if(!start)
start = 0;
var returnVal = this.substring(0, start);
var index = 0;
for (var i = start; i < this.length; i++) {
var c = this.charAt(i);
target = typeof target == 'function' ? target.call(this, index) : target;
if (c == target) {
returnVal += typeof replaced == 'function' ? replaced.call(this, index) : replaced;
while (i < this.length - 1 && this.charAt(i + 1) == c) {
i++;
}
index++;
}else{
returnVal += c;
}
}
return returnVal;
}
/**
* 扩展基础类
* 克隆复制(简单copy而已)
**/
Array.prototype.clone = function(){
var arr = [];
var i = 0;
for(; i < this.length; i++){
switch(typeof this[i]){
case 'object':
var obj = {};
for(key in this[i])
obj[key] = this[i][key];
arr.push(obj);
break;
default:
arr.push(this[i]);
break;
}
}
return arr;
}
/**
* 扩展基础类
* 清空
**/
Array.prototype.clear = function() {
this.splice(0, this.length);
}
/**
* 扩展基础类
* 数组包含元素
**/
Array.prototype.contains = function(el) {
var i;
for(i = 0; i < this.length; i++) {
if(this[i] == el)
return true;
}
return false;
}
/**
* 扩展基础类
* 数组添加数组
**/
Array.prototype.merge = function(arr) {
if(arr){
var i;
for(i = 0; i < arr.length; i++) {
this.push(arr[i]);
}
}
}
/**
* 扩展基础类
* 根据值和属性获取到数组的对象下标
**/
Array.prototype.indexOf = function(val, field){
var i = 0;
for(; i < this.length; i++){
if(this[i] && (field ? this[i][field] == val : this[i] == val)){
return i;
}
}
return -1;
}
/**
* 扩展基础类
* 最后一个下标
**/
Array.prototype.lastIndexOf = function(val, field){
var i = 0;
var max = -1;
for(; i < this.length; i++){
if(this[i] && (field ? this[i][field] == val : this[i] == val)){
max = i;
}
}
return max;
}
/**
* 扩展基础类
* 数组唯一
**/
Array.prototype.unique = function(field){
var arr = [];
var i = 0;
for(; i < this.length; i++){
var val = field ? this[i][field] : this[i];
var index = this.lastIndexOf(val, field);
if(index == i)
arr.push(this[i]);
}
return arr;
}
/**
* 扩展基础类
* 数组最大值
**/
Array.prototype.max = function(field){
var result = -1;
var i = 0;
for(; i < this.length; i++){
var val = field ? this[i][field] : this[i];
if(val > result)
result = val;
}
return result;
}
/**
* 扩展基础类
* 数组最小值
**/
Array.prototype.min = function(field){
var result = -1;
var i = 0;
for(; i < this.length; i++){
var val = field ? this[i][field] : this[i];
if(val < result)
result = val;
}
return result;
}
/**
* 扩展基础类
* 日期格式化
**/
Date.prototype.format = function(pat){
var year = this.getFullYear();
var month = this.getMonth() + 1;
var day = this.getDate();
var hour = this.getHours();
var minute = this.getMinutes();
var second = this.getSeconds();
// 两位补齐
month = month > 9 ? month : "0" + month;
day = day > 9 ? day : "0" + day;
hour = hour > 9 ? hour : "0" + hour;
minute = minute > 9 ? minute : "0" + minute;
second = second > 9 ? second : "0" + second;
if(!pat){
pat = "yyyy-MM-dd";
}
pat = pat.replace(/yyyy/g, year);
pat = pat.replace(/MM/g, month);
pat = pat.replace(/dd/g, day);
pat = pat.replace(/HH/gi, hour);
pat = pat.replace(/mm/g, minute);
pat = pat.replace(/ss/g, second);
return pat;
}
// 减去时差的毫秒数(取决于使用的浏览器的locale设置)
Date.prototype.getTime2 = function(){
// return this.getTime();
return this.getTime() - this.getTimezoneOffset() / 60 * 3600 * 1000;
}
// 日期相差天数
Date.prototype.diff = function(date){
return Math.ceil((this - date) / (1000 * 60 * 60 * 24));
}
// 日期加减计算
Date.prototype.add = function(days){
return new Date(this.getTime() + days * (1000 * 60 * 60 * 24));
}
// 日期加减计算
Date.prototype.addMonth = function(months){
var day = this.getDate();
var month = this.getMonth() + 1;
var year = this.getFullYear();
month += months;
if(month > 12){
year += Math.floor(month / 12);
month = month % 12;
}
return Date.parse(month + '/' + day + '/' + year);
}
// 解析字符串,以默认 pat = "yyyy-MM-dd"的格式,而不是MM/dd/yyyy
Date.parse2 = function(str, pat){
if(str == null || str == '')
return new Date();
var rstr = str.replace(/(\d{4})([-\./])(\d{1,2})\2(\d{1,2})/, "$3/$4/$1");
return new Date(Date.parse(rstr));
}
// 解析字符串,json date obj
// 减去时差的毫秒数(取决于使用的浏览器的locale设置)
Date.parse3 = function(obj){
// return new Date(obj.time);
return new Date(obj.time - new Date().getTimezoneOffset() / 60 * 3600 * 1000);
// var str = obj.year + '-' + (obj.month + 1) + '-' + obj.date + ' ' +
// obj.hours + ':' + obj.minutes + ':' + obj.seconds;
// return Date.parse2(str);
}
/**
* 扩展基础类
* 克隆复制(简单copy而已)
**/
Array.prototype.clone = function(){
return this.splice(0);
}
/**
* 扩展基础类
* 清空
**/
Array.prototype.clear = function() {
this.length = 0;
}
分享到:
相关推荐
本文将详细介绍JavaScript的一些常用类库,这些类库极大地扩展了JavaScript的功能,并且在实际开发中非常常见。 1. **jQuery**:jQuery是JavaScript中最著名的类库之一,它简化了DOM操作、事件处理、动画效果和Ajax...
标题“常用JS大全”和描述“Javascript经典技术”暗示我们将探讨JavaScript中的基础概念、核心特性以及常见的应用场景和最佳实践。 1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值...
### jdk1.6扩展类与属性知识点解析 #### 一、DesktopSystemTray与AWT新特性 在Java Development Kit (JDK) 1.6版本中,新增加了一个非常实用的功能——`Desktop.SystemTray`。此功能是AWT(Abstract Window ...
"站长常用的200个js代码"集合可能是为了帮助网站管理员、开发者和站长解决日常工作中遇到的各种问题,提升工作效率而整理的实用代码片段。 1. **DOM操作**:JavaScript通过Document Object Model (DOM) API可以动态...
本教程将深入浅出地介绍JavaScript的基础知识,并结合实际案例进行实践讲解。 一、JavaScript简介 JavaScript是由Netscape公司的Brendan Eich在1995年设计的一种轻量级解释性编程语言。虽然名字中带有“Java”,但...
在Java编程中,有几个常用的类对于开发人员来说是不可或缺的,这些类可以帮助我们处理数据库操作、页面分页以及过滤请求。下面将详细讲解标题和描述中提到的几个关键概念。 首先,`baseDao` 类是Java开发中的一个...
总的来说,这份“NestJS 基础到实战”教程全面介绍了 NestJS 的核心概念、常用功能以及实际项目中的应用,适合想要学习和掌握 NestJS 的开发者阅读。通过这个教程,读者将能够构建出高效、稳定且易于维护的 Node.js ...
将JavaScript封装成通用类,可以使得这些功能更加模块化,便于维护和扩展。 在"Jscript.cs"这个文件中,可能包含了一组预定义的JavaScript函数,这些函数可能包括: 1. 数据验证:例如,检查输入是否为空、格式...
JavaScript,简称JS,是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,实现客户端的动态效果和交互。...开发者可以将这些代码片段作为基础,根据自己的需求进行定制和扩展,以适应不同的项目需求。
在压缩包的文件名称列表中,“Ajax T1”可能指的是一个与Ajax相关的类或模块,用于处理异步JavaScript和XML(Asynchronous JavaScript and XML),尽管现在更常用于JSON(JavaScript Object Notation)。在C#中,...
在JavaScript编程中,工具类(Utility Class)是一种常见的设计模式,它封装了各种常用功能,以便在项目中方便地重复使用。"js工具类 弹窗"是指将弹窗功能作为一个独立的模块来实现,这样的设计可以使弹窗的样式、...
本压缩包包含了13个Struts2框架中常用的类包,对于初学者和学生来说,掌握这些类包将对理解Struts2的工作原理及其核心功能大有裨益。 1. **struts2-core**: 这是Struts2的核心库,包含了框架的基础组件。如Action、...
本压缩包集合了四个常用的JavaScript框架——JQuery、Prototype、Javascript(可能是指JavaScript基础文档)和Ext的中文帮助文档,对于web前台开发人员来说,无疑是一份宝贵的资源。 首先,我们来详细了解这些框架...
16. **ES6新特性**:除了上面提到的`let`、`const`、箭头函数、模块化,还有类(`class`)、解构赋值、模板字符串、扩展运算符等。 17. **正则表达式**:用于文本匹配和替换,如`/pattern/flags`,支持多种匹配模式...
".py"是Python编程语言的源代码文件,".js"是JavaScript脚本,主要用于网页交互。 5. **压缩和归档类扩展名**:".zip"和".rar"是两种常见的压缩格式,可以将多个文件打包成一个文件,便于传输和存储。".7z"提供了更...
"88种常用JS.CSS效果"这个压缩包文件很可能包含了88个不同的示例,每个示例都是一个实现特定视觉效果或交互功能的代码片段。让我们详细探讨一下这些常见效果背后的JS和CSS知识点。 1. **JS基础** - 变量声明:`var...
其中,BHO是IE中最常用的扩展方式之一,能够深度集成到浏览器中,监听并处理各种浏览器事件。 (2)内容扩展(Content Extents) 这类扩展由IE的内容部分调用,如ActiveDocuments、ActiveXControls、Behaviors等。...
本文将深入探讨jQuery的核心功能,并特别关注其中的三个常用扩展函数,旨在帮助开发者更好地理解和运用jQuery进行网页开发。 一、jQuery基础 1. 选择器:jQuery提供了丰富的选择器,如ID选择器(#id),类选择器(....
这个“常用JS集锦”文档很可能是对这些知识点的具体应用示例,涵盖了从基础到进阶的多个方面,对于想要提升JavaScript技能的开发者来说是一份宝贵的资源。通过学习和实践这些实例,可以帮助开发者深入理解JavaScript...