为了提交web页面开发效率,自己封装了一套web页面输入框验证方法:
1、首先是ArrayList对象
该ArrayList对象和java中ArrayList对象用法基本一样,包含了java中ArrayList中大部分方法,为存取对象提供了便利。
/**********************************************************
* JavaScript实现的ArrayList类
*
* @author {yangl}
* @version $Revision: 0.5 $ $Date: 2008/04/02 15:00:00 $
* @description
* Method:
* add(element);
* addElementAt(index, element);
* contains(element);
* get(index);
* isEmpty(index);
* indexOf(element);
* lastIndexOf(element);
* remove()
* setElementAt(index, element);
* size();
* toString();
* @example
* var arrList = new ArrayList();
* //var arrList = new ArrayList(10);
* arrList.add("000");
* arrList.add("001");
* arrList.add("002");
*
*********************************************************/
// JavaScript ArrayList
/**
Method:
add(element);
addElementAt(index, element);
contains(element);
get(index);
isEmpty(index);
indexOf(element);
lastIndexOf(element);
remove(index);
setElementAt(index, element);
size();
toString();
*/
/**
Example:
var arrList = new ArrayList();
//var arrList = new ArrayList(10);
arrList.add("000");
arrList.add("001");
arrList.add("002");
*/
var ArrayList = function () {
var args = ArrayList.arguments;
var initialCapacity = 10;
if (args != null && args.length > 0) {
initialCapacity = args[0];
}
var elementData = new Array(initialCapacity);
var elementCount = 0;
this.size = function () {
return elementCount;
};
this.add = function (element) {
//alert("add");
ensureCapacity(elementCount + 1);
elementData[elementCount++] = element;
return true;
};
this.addElementAt = function (index, element) {
//alert("addElementAt");
if (index > elementCount || index < 0) {
alert("IndexOutOfBoundsException, Index: " + index + ", Size: " + elementCount);
return;
//throw (new Error(-1,"IndexOutOfBoundsException, Index: "+index+", Size: " + elementCount));
}
ensureCapacity(elementCount + 1);
for (var i = elementCount + 1; i > index; i--) {
elementData[i] = elementData[i - 1];
}
elementData[index] = element;
elementCount++;
};
this.setElementAt = function (index, element) {
//alert("setElementAt");
if (index > elementCount || index < 0) {
alert("IndexOutOfBoundsException, Index: " + index + ", Size: " + elementCount);
return;
//throw (new Error(-1,"IndexOutOfBoundsException, Index: "+index+", Size: " + elementCount));
}
elementData[index] = element;
};
this.toString = function () {
//alert("toString()");
var str = "{";
for (var i = 0; i < elementCount; i++) {
if (i > 0) {
str += ",";
}
str += elementData[i];
}
str += "}";
return str;
};
this.get = function (index) {
//alert("elementAt");
if (index >= elementCount) {
alert("ArrayIndexOutOfBoundsException, " + index + " >= " + elementCount);
return;
//throw ( new Error( -1,"ArrayIndexOutOfBoundsException, " + index + " >= " + elementCount ) );
}
return elementData[index];
};
this.remove = function (index) {
if (index >= elementCount) {
alert("ArrayIndexOutOfBoundsException, " + index + " >= " + elementCount);
//return;
throw (new Error(-1, "ArrayIndexOutOfBoundsException, " + index + " >= " + elementCount));
}
var oldData = elementData[index];
for (var i = index; i < elementCount - 1; i++) {
elementData[i] = elementData[i + 1];
}
elementData[elementCount - 1] = null;
elementCount--;
return oldData;
};
this.isEmpty = function () {
return elementCount == 0;
};
this.indexOf = function (elem) {
//alert("indexOf");
for (var i = 0; i < elementCount; i++) {
if (elementData[i] == elem) {
return i;
}
}
return -1;
};
this.lastIndexOf = function (elem) {
for (var i = elementCount - 1; i >= 0; i--) {
if (elementData[i] == elem) {
return i;
}
}
return -1;
};
this.contains = function (elem) {
return this.indexOf(elem) >= 0;
};
function ensureCapacity(minCapacity) {
var oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
var oldData = elementData;
var newCapacity = parseInt((oldCapacity * 3) / 2 + 1);
if (newCapacity < minCapacity) {
newCapacity = minCapacity;
}
elementData = new Array(newCapacity);
for (var i = 0; i < oldCapacity; i++) {
elementData[i] = oldData[i];
}
}
}
};
2、测试类
为了提高编程的灵活性,将每种检测情况封装成一个一个小测试类,比如是否可以为空,字符长度等,且每个测试类中必须有一个方法test用于检测输入框数据是否满足条件,满足返回1,否则返回0。
例如输入框不能为空:
/**********************************************************
* 输入框不可以为空
* @param lable lable名称
* @param input 输入框name
* @returns
**********************************************************/
function NoNullCellTest(lable, input){
this.lableName = lable;
this.inputName = input;
this.test = function(){
var inputObj = document.getElementsByName(this.inputName)[0];
var str = inputObj.value;
if(str == ''){
alert(this.lableName+"不可以为空!");
inputObj.focus();
return 0;
}
return 1;
};
}
3、主测试对象
主测试对象是运用责任链模式,可以将各种测试类对象串联起来,便于检测输入框是否满足特定条件
/**********************************************************
* 主测试对象(责任链模式)
* 通过addTest方法将单元测试对象添加到列表中
* test方法开始检测
* @returns
**********************************************************/
function MainTest(){
this.arrList = new ArrayList();
this.addTest=function(cellTest){
this.arrList.add(cellTest);
return this;
};
this.test=function(){
for(var i = 0; i < this.arrList.size(); i++){
var test = this.arrList.get(i);
var returnValue = test.test();
if(returnValue == 0){
return 0;
}
}
return 1;
};
}
4、实例
如果页面姓名输入框要求满足不能为空、只能长度为3~4个汉字
//姓名检测
var nameNoNullTest = new NoNullCellTest("姓名","userVo.string(name)");
var nameLengthTest = new LengthCellTest("姓名","userVo.string(name)",2,8);
var nameChineseTest = new ChineseCellTest("姓名","userVo.string(name)");
var nameMainTest = new MainTest();
nameMainTest.addTest(nameNoNullTest).addTest(nameLengthTest).addTest(nameChineseTest);
//姓名检测
function nameTest(){
nameMainTest.test();
}
分享到:
相关推荐
JavaScript验证用户登录 JavaScript验证用户登录 JavaScript验证用户登录
javascript验证框架,在这里备份,
用户注册页面代码javascript验证,主要是讲用户注册界面的设计。
JavaScript验证函数大全JavaScript验证函数大全JavaScript验证函数大全
JavaScript验证表单大全 JavaScript验证表单大全 JavaScript验证表单大全
* 身份证15位编码规则:dddddd... * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) * i为身份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置
一个简单的带有javascript验证的注册页面
SLint是一个JavaScript验证工具(非开源),可以扫描JavaScript源代码来查找问题。如果JSLint发现一 个问题,JSLint就会显示描述这个问题的消息,并指出错误在源代码中的大致位置。有些编码风格约定可能导致未预见的...
javascript 验证 javascript 验证
javascript验证表单工具,各种常用表单验证的正则表达式。
javascript验证表单大全::javascript 验证 表单
javascript 验证函数集合: 收集整理了一些javascript常用的验证函数,需要的朋友可以下载。
Javascript 验证表单大全 常用的wed开发表单验证都在里面了。
BookStore 用javaScript验证 用户输入 网页 html javaScript css
JavaScript验证表单大全 包括常用的许多函数!
用Javascript验证email填写是否正确
常用的JavaScript验证正则表达式
动态公用javaScript验证 动态公用javaScript验证 动态公用javaScript验证