javascript extend
interface Date{
addHours(h:number);
addMinutes(m:number);
format(str):string
}
interface String{
trim():string;
solrFormat():string;
}
interface Array<T> {
clear();
removeByIndex(index:number);
remove(fn:(t:T)=>boolean);
}
(function(){
Date.prototype.addHours= function(h:number) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
} ;
Date.prototype.addMinutes= function(m:number) {
this.setTime(this.getTime() + (m*60*1000));
return this;
} ;
Date.prototype.format=function(fmt:string="yyyy-MM-dd hh:mm:ss"):string {
let date=this;
if(!date){
return date;
}
if (fmt === undefined || fmt === "" || fmt === null) {
fmt = "yyyy-MM-dd hh:mm:ss";
}
let o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (let k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
if(!String.prototype.trim){
String.prototype.trim=function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')||"";
}
}
String.prototype.solrFormat=function () {
if(!this){
return this;
}
let str= this.replace(/[\(\)\{\}\[\]\^\*&%#$@!<>?=:'"]/g,"");
str=this.replace(/-/,"\\-");
return str.replace(/[\ +]/g,"\\ ")
};
Array.prototype.clear=function () {
this.splice(0,this.length);
}
Array.prototype.removeByIndex= function(index:number) {
this.splice(index,1);
};
Array.prototype.remove= function(fn:(t:any)=>boolean) {
let items = this.filter(fn);
let that=this;
items.forEach(function (item) {
let index = that.indexOf(item);
this.removeByIndex(index);
})
};
})();
d.ts declare file
declare interface Date{
addHours(h:number);
addMinutes(m:number);
format(str):string
} declare interface String{
trim();
solrFormat():string;
} declare interface Array<T> {
clear();
removeByIndex(index:number);
remove(fn:(t:T)=>boolean);
}
javascript extend的更多相关文章
- JavaScript学习笔记(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- JavaScript学习总结(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- $.extend()的用法【转】
1.合并多个对象. 这里使用的就是$.extend()的嵌套多个对象的功能. 所谓嵌套多个对象,有点类似于数组的合并的操作. 但是这里是对象.举例说明. 代码如下: <span style=&q ...
- jQuery.extend和jQuery.fn.extend的区别?
jquery 本身 是由 Resig: 莱希格, 一个美国的小伙子小伙伴开发的, 在2005年 prototype发表之后, 在2006年1月发表的, 后来进入mozilla工作, mozilla的j ...
- JavaScript学习总结(五)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- jQuery $.extend()使用方法
$.extend()使用方法总结. jQuery为开发插件提拱了两个方法,各自是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.ex ...
- JQuery$.extend()用法
1.合并多个对象. <span style="font-size:18px;">//用法: jQuery.extend(obj1,obj2,obj3,..) var C ...
- javaScript学习总结(二)——jQuery插件的开发
概要 jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定 ...
- jquery 原理
/* * my-jquery-1.0 *//* * 网上也有很多实现的版本,不过这是我在我自己的理解下写的,加上注释,希望可以解释清楚.*//* * 整个jquery包含在一个匿名函数中,专业点叫闭包 ...
随机推荐
- 图解:图形下控制台中weblogic9.2多池配置为oracle集群RAC
update: 这个东西如果配置不顺利的话:应用请求数据库的时候,会打印类似这样的错误: :open connection err Pool connect failed : weblogic.com ...
- (转载)c++引用
引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价 语法:类型 &引用名=目标变量名: 特别注意: 1.&不是求地址运算符,而是起标志作用 2. ...
- PAT B1045 快速排序 (25 分)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的 N 个互不相同的正整数的排列,请问 ...
- 蓝桥杯之 2n皇后问题(双层dfs,暴力)
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后 和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两 个白皇后都不在同 ...
- day63
一.环境搭建 1.安装node 去官网下载node安装包 傻瓜式安装 万一安装后终端没有node环境,要进行node环境变量的配置(C:\Program Files\nodejs) 可以通过node提 ...
- phpstorm开发环境搭建流程
1.下载phpstorm 2.网上找注册码 phpstorm 8 license key Learn Programming===== LICENSE BEGIN =====63758-1204201 ...
- 处女男学Android(七)---Android 应用资源之StateListDrawable
前言 本篇Blog将记录关于Android应用资源中最经常使用的一个Drawable资源--StateListDrawable,本来说应当继续写UI方面的内容,突然跳到应用资源这边,主要是由于之前写界 ...
- static成员函数不能调用non-static成员函数
1 一般类静态成员函数不能调用非静态成员函数 2 static成员函数可以调用构造函数吗? 答案是肯定的,由于static成员函数没有this指针,所以一般static成员函数是不能访问non-sta ...
- .net 设置Webbowser 版本
.net 里的Webbowser控件默认情况是用IE7来渲染 可修改注册表试用是最新的版本来渲染: using System; using System.Collections.Generic; us ...
- 20155211 网络攻防技术 Exp08 Web基础
20155211 网络攻防技术 Exp08 Web基础 实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...