初步实现。
1 <!--
2 /**********************************************************
3 * validatorUtil.js
4 * @author lightning
5 * @version 0.1
6 * 使用javascript的prototype特性对String等对象进行扩展
7 * 建立一个输入交验的基本工具。由于实现中大量的使用了正则表达式,
8 * 需要修改源码的朋友请先自己复习一下javascript的正则表达式
9 *
10 **********************************************************/
11
12 /**
13 * 此处选择对String进行扩展主要是因为javascript与html,jsp等页面
14 * 进行交互的过程中,主要的数据类型是String(javascript取得的页面数据,基本上默认都是String类型)。
15 * 即使要使用别的数据类型,也可以和String很方便的进行转化。
16 */
17 String.prototype.trim = trim;
18 String.prototype.isEmpty =isEmpty;
19 String.prototype.isEmail=isEmail;
20 String.prototype.isIP=isIP;
21 String.prototype.isNumber=isNumber;
22 String.prototype.isEnglish=isEnglish;
23 String.prototype.isChinese=isChinese;
24 String.prototype.hasChinese=hasChinese;
25 String.prototype.isIntBetween=isIntBetween;
26 String.prototype.byteLength=byteLength;
27
28 /**
29 * $
30 * @param {String} id
31 * @return {Element} 返回具有指定id的Element对象
32 */
33 function $(id) {
34 var element;
35 if (typeof id == 'string'){
36 element = document.getElementById(id);
37 }
38
39 //每取得一个element都对其进行这样子的方法添加开销可能会很大,不太现实
40 // element.trim = trim;
41 // element.isEmpty =isEmpty;
42 // element.isEmail=isEmail;
43 // element.isIP=isIP;
44 // element.isNumber=isNumber;
45 // element.isEnglish=isEnglish;
46 // element.isChinese=isChinese;
47 // element.hasChinese=hasChinese;
48 // element.isIntBetween=isIntBetween;
49 // element.byteLength=byteLength;
50
51 return element;
52 }
53
54 /**
55 * $$
56 * @param {String} id
57 * @return {String} id等于param的element的值
58 */
59 function $$(id) {
60 var elementValue="";
61 if (typeof id == 'string'){
62 elementValue = document.getElementById(id).value;
63 }
64 return elementValue;
65 }
66
67 /**
68 * $A
69 * <p>
70 * 此方法最基本的使用是方便地取得指定id的element的指定attribute。
71 * 可以对此进行一些扩展使用。
72 * 如:在element中增加自定义的attribute--"errorMsg",
73 * 用于保存一些固定的提示信息(可以和一些框架标签结合使用实现提示信息的国际化)
74 * 这样就可以使用javascript方便地显示这些信息
75 * <p>
76 * @param {String} id element的id值
77 * @param {String} attName 所要取得的attribute的名称
78 * @return Attribute 返回所指定的Attribute的内容
79 */
80 function $A( id, attName ){
81 return document.getElementById(id).getAttribute(attName);
82 }
83
84 /**
85 * $N
86 * @param {String} elementName 所要取得的element的名称
87 * @return {Element} 返回具有指定名称的Element对象数组
88 */
89 function $N(elementName){
90 return document.getElementsByName(elementName);
91 }
92
93 /**
94 * $Tag
95 * @param {String} tagName 所要取得的tag的名称
96 * @return {Element} 返回具有指定tag名(element类型)的Element对象数组
97 */
98 function $Tag(tagName){
99 return document.getElementsByTagName(tagName);
100 }
101
102 /**
103 * trim
104 * @return {String} 去掉头尾空白符的字符串
105 */
106 function trim(){
107 return this.replace(/(^\s*)|(\s*$)/g, "");
108 }
109 /**
110 * isEmpty
111 * @return {Boolean} 判断对象的值是否为空
112 */
113 function isEmpty(){
114 if(this.trim()==""){
115 return true;
116 }
117 return false;
118 }
119 /**
120 * isEmail
121 * @return {Boolean} 对象的值是否符合email的格式
122 */
123 function isEmail(){
124 var EmailReg=/\w+@(\w+\.)+[a-z]{2,3}/g;
125 if(this.trim().search(EmailReg)!=-1){
126 return true;
127 }
128 return false;
129 }
130 /**
131 * isIP
132 * @return {Boolean} 对象的值是否符合IP的格式
133 */
134 function isIP() {
135 var ipReg=/^(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$/g;
136 if(this.trim().search(ipReg)!=-1){
137 return true;
138 }
139 return false;
140 }
141 /**
142 * isNumber
143 * @return {Boolean} Element的类型是否为Number
144 */
145 function isNumber() {
146 var nuReg=/^\d+$/g;
147 if(this.trim().search(nuReg)!=-1){
148 return true;
149 }
150 return false;
151 }
152 /**
153 * isEnglish
154 * @return {Boolean} Element的值是否为英文(全部是英文字母)
155 */
156 function isEnglish() {
157 var enReg=/^[A-Za-z]+$/g;
158 if(this.trim().search(enReg)!=-1){
159 return true;
160 }
161 return false;
162 }
163 /**
164 * isChinese
165 * @return {Boolean} Element的值是否为中文(全部是中文字符)
166 */
167 function isChinese() {
168 var chReg=/^[\u0391-\uFFE5]+$/g;
169 if(this.trim().search(chReg)!=-1){
170 return true;
171 }
172 return false;
173 }
174 /**
175 * hasChinese
176 * @return {Boolean} Element是否包含有中文字符
177 */
178 function hasChinese() {
179 var chReg=/[\u0391-\uFFE5]+/g;
180 if(this.trim().search(chReg)!=-1){
181 return true;
182 }
183 return false;
184 }
185 /**
186 * numBetween
187 * @param {Number} max
188 * @param {Number} min
189 * @return {Boolean} Element的值是否大于min小于max
190 */
191 function isIntBetween(max,min) {
192 min = min || 0;
193 max = max || Number.MAX_VALUE;
194 return min <= parseInt(this) && parseInt(this) <= max;
195 }
196 /**
197 * byteLength
198 * @return number InputElemen的值所含字节数(双字节字符算两个)
199 */
200 function byteLength() {
201 return this.replace(/[^\x00-\xff]/g,"**").length;
202 }
203
204 /***********************************
205 * 下面的这几个是从spring嘟嘟的嘟嘟老窝里取得的
206 * 还没有经过整理,只供参考。大家要用的话可以自己进行整理。
207 * 和笔者的实现不同,嘟嘟的这些方法中使用最多的实现方式是
208 * typeof和constructor
209 ***********************************/
210 // function isAlien(a) {
211 // return isObject(a) && typeof a.constructor != 'function';
212 // }
213 //
214 //
215 //
216 // function isArray(a) {
217 // return isObject(a) && a.constructor == Array;
218 // }
219 //
220 // function isBoolean(a) {
221 // return typeof a == 'boolean';
222 // }
223 //
224 // function isEmpty(o) {
225 // var i, v;
226 // if (isObject(o)) {
227 // for (i in o) {
228 // v = o[i];
229 // if (isUndefined(v) && isFunction(v)) {
230 // return false;
231 // }
232 // }
233 // }
234 // return true;
235 // }
236 //
237 // function isFunction(a) {
238 // return typeof a == 'function';
239 // }
240 //
241 // function isNull(a) {
242 // return typeof a == 'object' && !a;
243 // }
244 //
245 // function isNumber(a) {
246 // return typeof a == 'number' && isFinite(a);
247 // }
248 //
249 // function isObject(a) {
250 // return (a && typeof a == 'object') || isFunction(a);
251 // }
252 //
253 // function isString(a) {
254 // return typeof a == 'string';
255 // }
256 //
257 // function isUndefined(a) {
258 // return typeof a == 'undefined';
259 // }
260 //-->
posted on 2006-05-10 16:50
OO 阅读(365)
评论(0) 编辑 收藏 所属分类:
java相关的乱七八糟的东西