>웹 프론트엔드 >JS 튜토리얼 >프로토타입 Extension_javascript 기술을 기반으로 한 JavaScript 공통 함수 라이브러리

프로토타입 Extension_javascript 기술을 기반으로 한 JavaScript 공통 함수 라이브러리

WBOY
WBOY원래의
2016-05-16 18:14:541189검색
코드 복사 코드는 다음과 같습니다.

/**
2 * 배열 요소 검색(프로토타입 확장 또는 오버로딩)
3 * @param {o} 검색된 요소 값
4 * @type int
5 * @returns 요소 인덱스
6*/
7 Array.prototype.contains = function(o) {
8 var index = -1;
9 for(var i=0;ireturn index;
}

/**
* 날짜 형식(프로토타입 확장 또는 오버로드)
* YYYY/yyyy/YY/yy 형식은 연도를 나타냅니다.
* MM/M 월
* W/W 주
* dd/ DD/ d/D 날짜
* hh/HH/h/H 시간
* mm/m 분
* ss/SS/s/S 초
* @param {formatStr} 형식 템플릿
* @type 문자열
* @returns 날짜 문자열
*/
Date.prototype.format = function(formatStr){
var str = formatStr;
var Week = ['일','일','이','삼','사','오','六'];
str=str.replace(/yyyy|YYYY/,this.getFullYear());
str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' (this.getYear( ) % 100));
str=str.replace(/MM/,(this.getMonth() 1)>9?(this.getMonth() 1).toString():'0' (this.getMonth() 1)) ;
str=str.replace(/M/g,this.getMonth());
str=str.replace(/w|W/g,Week[this.getDay()]);
str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' this.getDate());
str=str.replace(/d|D/g,this.getDate());
str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' this.getHours());
str=str.replace(/h|H/g,this.getHours());
str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' this.getMinutes());
str=str.replace(/m/g,this.getMinutes());
str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' this.getSeconds());
str=str.replace(/s|S/g,this.getSeconds());
str을 반환합니다;
}

/**
* 날짜 차이 비교(프로토타입 확장 또는 오버로드)
* @param {strInterval} 날짜 유형: 'y, m, d, h, n, s, w'
* @param {dtEnd} 형식은 날짜 유형이거나 유효한 날짜 형식 문자열입니다.
* @type int
* @returns 비교 결과
*/
Date.prototype.dateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' ) { //如果是字符串转换为日期型
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's' :returnparseInt((dtEnd - dtStart) / 1000);
case 'n' :return parsInt((dtEnd - dtStart) / 60000);
case 'h' :return parsInt((dtEnd - dtStart) / 3600000);
case 'd' :return parsInt((dtEnd - dtStart) / 86400000);
case 'w' :return parsInt((dtEnd - dtStart) / (86400000 * 7));
case 'm' :return (dtEnd.getMonth() 1) ((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth() 1);
case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
}
}

/**
* 날짜 계산(프로토타입 확장 또는 오버로드)
* @param {strInterval} 날짜 유형: 'y, m, d, h, n, s, w'
* @param {Number} 수량
* @type 날짜
* @returns 계산된 날짜
*/
Date.prototype.dateAdd = function(strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's' :return new Date(Date.parse(dtTmp) (1000 * Number));
case 'n' :return new Date(Date.parse(dtTmp) (60000 * 숫자));
case 'h' :return new Date(Date.parse(dtTmp) (3600000 * 숫자));
case 'd' :return new Date(Date.parse(dtTmp) (86400000 * 숫자));
case 'w' :return new Date(Date.parse(dtTmp) ((86400000 * 7) * Number));
case 'q' : 새로운 날짜 반환(dtTmp.getFullYear(), (dtTmp.getMonth()) 숫자*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds ());
case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds() );
case 'y' : 새 날짜 반환((dtTmp.getFullYear() Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds() );
}
}

/**
* 날짜 데이터 정보 가져오기(프로토타입 확장 또는 오버로딩)
* @param {interval} 날짜 유형: 'y, m, d, h, n, s, w'
* @type int
* @지정된 날짜 부분을 반환합니다
*/
Date.prototype.datePart = 함수(간격){
var myDate = this;
var partStr='';
var Week = ['일','일','이','삼','사','오','六'];
스위치(간격)
{
case 'y' :partStr = myDate.getFullYear();break;
case 'm' :partStr = myDate.getMonth() 1;break;
case 'd' :partStr = myDate.getDate();break;
case 'w' :partStr = Week[myDate.getDay()];break;
case 'ww' :partStr = myDate.WeekNumOfYear();break;
case 'h' :partStr = myDate.getHours();break;
case 'n' :partStr = myDate.getMinutes();break;
case 's' :partStr = myDate.getSeconds();break;
}
return partStr;
}

/**
* 날짜를 배열로 분할(프로토타입 확장 또는 오버로드)
* @type array
* @returns 날짜 배열
*/
Date.prototype.toArray = function() {
var myDate = this;
var myArray = 배열();
myArray[0] = myDate.getFullYear();
myArray[1] = myDate.getMonth() 1;
myArray[2] = myDate.getDate();
myArray[3] = myDate.getHours();
myArray[4] = myDate.getMinutes();
myArray[5] = myDate.getSeconds();
myArray를 반환합니다.
}

/**
* 이번 달의 일수 가져오기(프로토타입 확장 또는 오버로드)
* @type int
* @일수를 반환
*/
Date.prototype.daysOfMonth = function(){
var myDate = this;
var ary = myDate.toArray();
var date1 = (new Date(ary[0],ary[1] 1,1));
var date2 = date1.dateAdd('m',1);
var result = daysDiff(date1.format('yyyy-MM-dd'),date2.format('yyyy-MM-dd'));
반환 결과;
}

/**
* 윤년 결정(프로토타입 확장 또는 오버로딩)
* @type boolean
* @윤년인지 여부를 반환 true/false
*/
Date.prototype.isLeapYear = function() {
return (0==this.getYear()%4&&((this. getYear() 0!=0)||(this.getYear()@0==0)));
}

/**
* 두 날짜 간의 일수 차이 비교(사용자 지정)
* @param {DateOne} 1일
* @param {DateOne} 2일
* @type int
* @returns 비교결과
*/
함수 daysDiff(DateOne,DateTwo)
{
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('- '));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-') 1);
var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));

var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-') 1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));

var cha=((Date.parse(OneMonth '/' OneDay '/' OneYear)- Date.parse(TwoMonth '/' TwoDay '/' TwoYear))/86400000);
return Math.abs(cha);
}

/**
* 날짜 계산(사용자 정의)
* @param {strInterval} 날짜 유형: 'y, m, d, h, n, s, w'
* @param {Number} 수량
* @param {prmDate} 원래 날짜
* @type 날짜
* @returns 계산된 날짜
*/
function dateAdd(interval,number,prmDate){
number = parseInt(number);
if (typeof(prmDate)=="string"){
prmDate = prmDate.split(/D/);
--prmDate[1];
eval("var prmDate = new Date(" prmDate.join(",") ")");
}
if (typeof(prmDate)=="object"){
var prmDate = prmDate
}
switch(interval){
case "y": prmDate.setFullYear (prmDate.getFullYear() 번호); 부서지다;
케이스 "m": prmDate.setMonth(prmDate.getMonth() 번호); 부서지다;
케이스 "d": prmDate.setDate(prmDate.getDate() 번호); 부서지다;
케이스 "w": prmDate.setDate(prmDate.getDate() 7*number); 부서지다;
케이스 "h": prmDate.setHours(prmDate.getHour() 숫자); 부서지다;
케이스 "n": prmDate.setMinutes(prmDate.getMinutes() 숫자); 부서지다;
케이스 "s": prmDate.setSeconds(prmDate.getSeconds() 번호); 부서지다;
case "l": prmDate.setMilliseconds(prmDate.getMilliseconds() number); 부서지다;
}
prmDate를 반환합니다.
}

/**
* 문자열 길이 가져오기(프로토타입 확장 또는 오버로드)
* @type int
* @returns 문자열 길이
*/
String.prototype.len = function() {
var arr=this.match(/[^x00-xff]/ig );
return this.length (arr==null?0:arr.length);
}

/**
* 문자열 왼쪽에서 지정된 문자 수 가져오기(프로토타입 확장 또는 오버로딩)
* @param {num} 숫자 가져오기
* @type string
* @returns 일치하는 문자열
*/
String.prototype.left = function(num,mode) {
if(!/d /.test(num)) return (이것);
var str = this.substr(0,num);
if(!mode) return str;
var n = str.len() - str.length;
num = num - parsInt(n/2);
return this.substr(0,num);
}

/**
* 문자열 오른쪽에서 지정된 수의 문자 가져오기(프로토타입 확장 또는 오버로딩)
* @param {num} 숫자 가져오기
* @type string
* @returns 일치하는 문자열
*/
String.prototype.right = function(num,mode) {
if(!/d /.test(num)) return (이것);
var str = this.substr(this.length-num);
if(!mode) return str;
var n = str.len() - str.length;
num = num - parsInt(n/2);
return this.substr(this.length-num);
}

/**
* 문자열 포함(프로토타입 확장 또는 오버로드)
* @param {string: str} 검색할 하위 문자열
* @param {bool: mode} 대소문자 무시 여부
* @type int
* @일치 횟수를 반환합니다
*/
String.prototype.matchCount = function(str,mode) {
return eval("this.match(/(" str ") )/g" (모드?"i":"") ").length");
}

/**
* 왼쪽 및 오른쪽 공백 제거(프로토타입 확장 또는 오버로드)
* @type 문자열
* @returns 처리된 문자열
*/
String.prototype.trim = function() {
return this.replace(/(^s*)|(s*$ )/g,"");
}

/**
* 왼쪽 공백 제거(프로토타입 확장 또는 오버로드)
* @type 문자열
* @returns 처리된 문자열
*/
String.prototype.lTrim = function() {
return this.replace(/(^s*)/g, "" );
}

/**
* 오른쪽 공백 제거(프로토타입 확장 또는 오버로딩)
* @type string
* @returns 처리된 문자열
*/
String.prototype.rTrim = function() {
return this.replace(/(s*$)/g, "");
}

/**
* 문자열을 날짜 유형으로 변환(프로토타입 확장 또는 오버로딩)
* @type Date
* @returns Date
*/
String.prototype.toDate = function() {
var Converted = Date.parse(this);
var myDate = 새 날짜(변환됨);
if (isNaN(myDate)) {var arys= this.split('-'); myDate = new Date(arys[0],--arys[1],arys[2]); }
myDate를 반환합니다.
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.