`

My JS

阅读更多

在很多项目中,我们都会在页面使用一些开源的jsframe,比如ext、jquery、prototype等,有时候只用到其中很少的方法或特性,比如$。

 

这样在一个并不复杂的页面中需要到如一个framejs是十分不划算的,因此我写了这个common.js,希望能在某些时候减少页面加载时间。

 

这些JS通用方法,包括$和基于prototype字符串的验证方法:

 

// Dongao Common scripts
// version 1.1
// author greate nomandia
(function(){
if ( !Class ){
 var Class = {
  create: function() {
   return function() {
    this.initialize.apply(this, arguments);
   }
  }
 }
}
var DU = Class.create();
DU.prototype = {
 initialize : function(){},
 version    : '1.0',
 $ : {},
 commonRegs : {
     Require : /.+/,
     Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
     Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
     Mobile : /^((\(\d{3}\))|(\d{3}\-))?1\d{10}$/,
     Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
     IdCard : /^\d{15}(\d{2}[\w\d])?$/,
     Currency : /^\d+(\.\d+)?$/,
     Number : /^\d+$/,
     Zip : /^[1-9]\d{5}$/,
     QQ : /^[1-9]\d{4,8}$/,
     Integer : /^[-\+]?\d+$/,
     Double : /^[-\+]?\d+(\.\d+)?$/,
     English : /^[A-Za-z]+$/,
     Chinese : /^[\u0391-\uFFE5]+$/,
     UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
     IsSafe : function(str){return !this.UnSafe.test(str);},
     Passport: /[\u0391-\uFFE5\w\d_-]{6,20}/,
     datetime :/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/
    },
 checkAllByName : function(name, obj){
      var chks = $N(name);
      if(!chks){ return false; }
      var i=0,len=chks.length;
      for (;i<len;i++ ){
       if( chks[i].type=='checkbox' ){chks[i].checked=obj.checked;}
      }
      return obj.checked;
     },
 getCheckedCnt : function(name){
      var chks = $N(name);
      if(!chks) {return false;}
      var i=0,len=chks.length,cnt=0;
      for(;i<len;i++){
       if( chks[i].type=='checkbox' && chks[i].checked){cnt++;}
      }
      return cnt;
     },
 round : function(number,X){
   X = (!X ? 2 : X);
   return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
 },
 getDocumentBody : function(){
  return document.body || document.documentElement;
 },
 disableMouseRightBtn : function(){
  this.getDocumentBody().oncontextmenu = function(){ if( window.event ) window.event.returnValue = null; }
 },
 disableJSError : function(){
  window.onerror = function(){return false;};
 },
 bindEvent : function(o, method, func){
  if ( o.attachEvent ) {
   o.attachEvent("on"+method,func);
  } else if ( o.addEventListener ){
   o.addEventListener(method,func,false);
  } else {}
 },
 removeEvent : function(o, method, func){
  if (o.removeEventListener) {
   o.removeEventListener(method, func, false);
  } else if (o.detachEvent) {
   try {
    o.detachEvent('on' + method, func);
   } catch (e) {}
  } else {}
 },
 open : function(url, width, height, winname){
  var _winname=winname || 'DongaoOpenWin';
  var _width = width || 500;
  var _height= height || 300;
  var _features='height='+_height+',width='+_width+',left='+((screen.width-_width)/2)+',top='+((screen.height-_height)/2)+',toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no';
  window.open(url, _winname, _features);
 },
 href : function(href, params){
  var _params = params ? encodingURI(params) : '';
  window.location.href = href+(''==_params?'':'?'+_params );
 },
 remove : function(obj){
  var _obj = ( 'string' == typeof obj ) ? $(obj) : obj;
  if( !_obj ) { return false; }
  var _parent = _obj.parentNode;
  if( _parent ) _parent.removeChild(_obj);
 }
};
window.DU = new DU();
// add protype functions for all string object in scripts. include : trim, judgement of type, byte length get ... etc.
String.prototype.trim  = function(){ return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); }
String.prototype.test  = function(reg){ return window.DU.commonRegs[reg].test(this); } // return whether it matched with reg.
String.prototype.isNotNull = function(){return this.test('Require');}
String.prototype.isNull  = function(){return !this.test('Require');}
String.prototype.inRange = function(min,max){return min<=this.dataLen()&&this.dataLen()<=max;}
String.prototype.lt   = function(value){return (this.dataLen()<value);}
String.prototype.gt   = function(value){return (this.dataLen()>value);}
String.prototype.isEmail = function(){return this.test('Email');}
String.prototype.isPhone = function(){return this.test('Phone');}
String.prototype.isMobile = function(){return this.test('Mobile');}
String.prototype.isUrl  = function(){return this.test('Url');}
String.prototype.isIdCard = function(){return this.test('IdCard');}
String.prototype.isCurrency = function(){return this.test('Currency');}
String.prototype.isNumber = function(){return this.test('Number');}
String.prototype.isPostCode = function(){return this.test('Zip');}
String.prototype.isQQ  = function(){return this.test('QQ');}
String.prototype.isInt  = function(){return this.test('Integer');}
String.prototype.isDb  = function(){return this.test('Double');}
String.prototype.isEnglish = function(){return this.test('English');}
String.prototype.isChinese = function(){return this.test('Chinese');}
String.prototype.isUnSafe = function(){return this.test('UnSafe');}
String.prototype.isIsSafe = function(){return this.test('IsSafe');}
String.prototype.isPassport = function(){return this.test('Passport');} // for user regist, include chinese,english,number,underline and minus-sign
String.prototype.bytesLen = function(){ if (''==this.length){return 0;}var i=0,len=this.length,cc=0,total=0;for(i=0;i<len;i++){cc=this.charCodeAt(i);total+=( 0<=cc&&cc<=255 ) ? 1 : 2;}return total;}
String.prototype.dataLen  = function(){ return this.trim().bytesLen(); }
String.prototype.isDatetime = function(){ return this.test('datetime');}
window.$ = function(){
 if ( !arguments){
  if( document.all ){ return document.all; }
 } else if ( arguments.length == 2 ){
  if ( 'string' == typeof(arguments[1]) ){
   return document.getElementById(arguments[0]).getElementsByTagName(arguments[1]);
  } else if ( 'int' == typeof(arguments[1] )){
   return document.getElementById(arguments[0]).childNodes[arguments[1]];
  }
 } else if ( arguments.length==1 ){
  return document.getElementById(arguments[0]);
 }
 return null;
}
window.$N = function(){
 if( !arguments ){
  if( document.all ){ return document.all }
 } else if( arguments.length > 0 && 'string' == typeof(arguments[0]) && document.getElementsByName ){
  return document.getElementsByName(arguments[0]);
 }
 return null;
}
window.$Tag = function(){
 if ( !arguments ){
  if( document.all ){ return document.all }
 } else if( arguments.length > 0 && 'string' == typeof(arguments[0]) && document.getElementsByTagName ){
  return document.getElementsByTagName(arguments[0]);
 }
 return null;
}
})();

 以上只是简要的写法并不美观,希望以后可以不断完善。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    [JavaScript][PDF][英文版]Oh My JS

    《Oh My JS》是一本专注于JavaScript语言的书籍,由Azat Mardan撰写,旨在深入解析JavaScript编程的精髓。这本书是英文版的,适用于希望更进一步了解JavaScript的专业开发者。它涉及了从基础概念到高级特性,从传统...

    MY JS EXCEL

    "MY JS EXCEL"是一个基于JavaScript的开源工具,主要用于在Web端生成和操作Excel文件。这个项目可能提供了处理表格数据的灵活性,使开发者无需依赖服务器端技术就能在客户端创建、编辑和导出Excel文档。从标签"源码...

    日历年月日时分秒控件myCalendar.js

    `myCalendar.js`是一款小巧而功能强大的JavaScript库,专为创建日历年月日时分秒控件而设计。本文将深入探讨`myCalendar.js`的原理、使用方法及其在实际项目中的应用。 一、`myCalendar.js`概述 `myCalendar.js`的...

    js 日期插件 my97

    JavaScript(简称JS)是一种轻量级的脚本语言,广泛应用于网页和网络应用开发,而My97日期插件则是JavaScript中的一款经典日期选择器工具,它为网页表单中的日期输入提供了便捷、人性化的交互体验。My97日期插件以其...

    My97DatePicker JS日历控件

    &lt;script type="text/javascript" src="My97DatePicker/WdatePicker.js"&gt; ()" type="text" /&gt; ``` 五、示例与实践 在提供的`demo.htm`文件中,我们可以看到My97DatePicker的各种使用示例,包括基本的日期选择...

    jQuery轮播图插件mySystem.js

    **jQuery轮播图插件mySystem.js详解** 在网页设计中,轮播图是一种常见的元素,用于展示多张图片或内容,节省空间的同时增加页面的动态效果。jQuery库以其丰富的功能和易用性,成为了创建轮播图插件的首选工具之一...

    季度js插件(基于My97DatePicker)

    【季度js插件(基于My97DatePicker)】是一款针对日期选择功能进行二次开发的JavaScript插件,它在原生的My97DatePicker基础上进行了扩展,以满足用户更具体的需求,特别是针对季度选择的场景。My97DatePicker是一款...

    js 时间插件My97DatePicker

    &lt;script src="My97DatePicker/WdatePicker.js"&gt; document.getElementById('datePicker').onclick = function(){ WdatePicker(); }; ``` 在这个例子中,当用户点击id为`datePicker`的输入框时,My97DatePicker...

    My JavaScript Objects-开源

    "My JavaScript Objects"是一个开源项目,旨在提供一套丰富的组件,帮助开发者更高效地创建具有对话框、树视图、工具栏和菜单等功能的用户界面。这个项目的开源特性意味着它的源代码对所有人开放,开发者可以查看、...

    ext JS集成My97DatePicker日期控件

    Ext JS是一个强大的JavaScript库,用于构建富客户端应用程序,而My97 DatePicker是一款广受欢迎的JavaScript日期选择器,因其自定义功能丰富、兼容性好而被广泛应用。 首先,让我们深入了解一下这两个关键组件: 1...

    my97日历 JS日历

    《my97日历 JS日历深度解析》 在网页开发中,日历插件是不可或缺的一部分,它为用户提供了一种方便的方式来选择日期,而my97日历是一款广泛使用的JavaScript日历组件,以其功能强大、易用性高、自定义性强等特点...

    My97DatePicker js的时间日期控件

    在JavaScript方面,My97DatePicker是基于原生JS编写,无需依赖其他库如jQuery,这降低了页面加载时间,提高了性能。同时,它提供了一系列的API接口和事件,开发者可以通过这些接口来控制日期选择的行为,例如设置...

    My97DatePicker js日历控件

    在实际使用过程中,开发者通常会将My97DatePicker的JS和CSS文件引入到HTML文件中,然后通过JavaScript代码实例化日期选择器,并设置相关参数。例如: ```html &lt;script src="path/to/WdatePicker.js"&gt; ``` ```...

    My97DatePicker(几种日历控件/js/实例演示)

    - `My97DatePicker.js`:主JavaScript文件,包含了控件的核心代码。 - `My97DatePicker.css`:样式文件,用于定义日期选择器的外观。 - `demo.html`:实例演示文件,展示了控件的各种用法和功能。 - `lang` 文件夹:...

    强大的js库,好资源

    "MY JS"标签可能代表这个资源集合是针对JavaScript自定义开发或者是一系列精选的JavaScript库的集合。这些库可能包括但不限于jQuery、React、Angular、Vue等主流框架,也可能是像Lodash这样的实用工具库,或者是D3....

    js 日历控件 My97 DatePicker 功能强大 体积小巧

    **JS日历控件My97 DatePicker详解** My97 DatePicker是一款广受欢迎的JavaScript日历控件,以其轻量级的体积、丰富的功能和优雅的界面设计,深受开发者喜爱。这款控件适用于各种Web应用程序,无论是简单的日期选择...

    My97DatePicker 非常漂亮的JS日历控件

    【My97DatePicker:精美JS日历控件详解】 在网页开发中,日期选择器是不可或缺的元素之一,它能够帮助用户便捷地选取日期,提高交互体验。My97DatePicker就是这样一款优秀的JavaScript日历控件,它以其精美的界面、...

    js 日历控件My97DatePicker,js分页

    实现JavaScript分页库有多种选择,例如jQuery的`bootstrap-paginator.js`或`pager.js`,它们提供了预设的样式和便捷的API。然而,对于简单的项目,开发者也可以手动编写分页逻辑,这有助于理解分页的核心原理。 ...

    my_js_qwje

    【标题】"my_js_qwje" 暗示了这是一个关于JavaScript的资源集合,可能是个人学习或项目开发过程中的积累。"my first js resources" 描述表明这是一份初级阶段的JavaScript学习资料,可能包括基础教程、示例代码、...

    JS版日历My97DatePicker

    **JS版日历My97DatePicker详解** My97DatePicker是一款功能强大且易于使用的JavaScript日期选择器组件,专为网页开发者设计,旨在提供一个高效、无刷新、支持中文显示的日历插件。这款组件以其出色的用户体验和高度...

Global site tag (gtag.js) - Google Analytics