Ext.apply(Ext.form.VTypes, {
// 年龄
"age" : function(_v) {
if (/^\d+$/.test(_v)) {
var _age = parseInt(_v);
if (_age < 200)
return true;
} else
return false;
},
'ageText' : '年龄格式出错!!格式例如:20',
'ageMask' : /[0-9]/i,
// 密码验证
"repassword" : function(_v, field) {
if (field.confirmTO) {
var psw = Ext.get(field.confirmTO);
return (_v == psw.getValue());
}
return true;
},
"repasswordText" : "密码输入不一致!!",
"repasswordMask" : /[a-z0-9]/i,
// 邮政编码
"postcode" : function(_v) {
return /^[1-9]\d{5}$/.test(_v);
},
"postcodeText" : "该输入项目必须是邮政编码格式,例如:226001",
"postcodeMask" : /[0-9]/i,
//IP地址验证
"ip":function(_v){
return /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/.test(_v);
},
"ipText":"该输入项目必须是IP地址格式,例如:222.192.42.12",
"ipMask":/[0-9\.]/i,
// 固定电话及小灵通
"telephone" : function(_v) {
return /(^\d{3}\-\d{7,8}$)|(^\d{4}\-\d{7,8}$)|(^\d{3}\d{7,8}$)|(^\d{4}\d{7,8}$)|(^\d{7,8}$)/
.test(_v);
},
"telephoneText" : "该输入项目必须是电话号码格式,例如:0513-89500414,051389500414,89500414",
"telephoneMask" : /[0-9\-]/i,
// 手机
"mobile" : function(_v) {
return /^1[35][0-9]\d{8}$/.test(_v);
},
"mobileText" : "该输入项目必须是手机号码格式,例如:13485135075",
"mobileMask" : /[0-9]/i,
// 身份证
"IDCard" : function(_v) {
// return /(^[0-9]{17}([0-9]|[Xx])$)|(^[0-9]{17}$)/.test(_v);
var area = {
11 : "北京",
12 : "天津",
13 : "河北",
14 : "山西",
15 : "内蒙古",
21 : "辽宁",
22 : "吉林",
23 : "黑龙江",
31 : "上海",
32 : "江苏",
33 : "浙江",
34 : "安徽",
35 : "福建",
36 : "江西",
37 : "山东",
41 : "河南",
42 : "湖北",
43 : "湖南",
44 : "广东",
45 : "广西",
46 : "海南",
50 : "重庆",
51 : "四川",
52 : "贵州",
53 : "云南",
54 : "西藏",
61 : "陕西",
62 : "甘肃",
63 : "青海",
64 : "宁夏",
65 : "新疆",
71 : "台湾",
81 : "香港",
82 : "澳门",
91 : "国外"
}
var Y, JYM;
var S, M;
var idcard_array = new Array();
idcard_array = _v.split("");
// 地区检验
if (area[parseInt(_v.substr(0, 2))] == null){
this.IDCardText="身份证号码地区非法!!,格式例如:32";
return false;
}
// 身份号码位数及格式检验
switch (_v.length) {
case 15 :
if ((parseInt(_v.substr(6, 2)) + 1900) % 4 == 0
|| ((parseInt(_v.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(_v
.substr(6, 2)) + 1900)
% 4 == 0)) {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;// 测试出生日期的合法性
} else {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;// 测试出生日期的合法性
}
if (ereg.test(_v))
return true;
else{
this.IDCardText="身份证号码出生日期超出范围,格式例如:19860817";
return false;
}
break;
case 18 :
// 18位身份号码检测
// 出生日期的合法性检查
// 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
// 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(_v.substr(6, 4)) % 4 == 0
|| (parseInt(_v.substr(6, 4)) % 100 == 0 && parseInt(_v
.substr(6, 4))
% 4 == 0)) {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;// 闰年出生日期的合法性正则表达式
} else {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;// 平年出生日期的合法性正则表达式
}
if (ereg.test(_v)) {// 测试出生日期的合法性
// 计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10]))
* 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11]))
* 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12]))
* 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13]))
* 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14]))
* 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15]))
* 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16]))
* 2
+ parseInt(idcard_array[7])
* 1
+ parseInt(idcard_array[8])
* 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);// 判断校验位
//alert(idcard_array[17]);
if (M == idcard_array[17]) {
return true; // 检测ID的校验位
} else {
this.IDCardText="身份证号码末位校验位校验出错,请注意x的大小写,格式例如:201X";
return false;
}
} else {
this.IDCardText="身份证号码出生日期超出范围,格式例如:19860817";
return false;
}
break;
default :
this.IDCardText="身份证号码位数不对,应该为15位或是18位";
return false;
break;
}
},
"IDCardText" : "该输入项目必须是身份证号码格式,例如:32082919860817201x",
"IDCardMask" : /[0-9xX]/i,
yearRange : function(val, field) {
return (val > 1900 && val < 2050);
},
yearRangeText : '日期应该在1900-2050',
weekRange : function(val, field) {
return (val > 0 && val < 6);
},
weekRangeText : '周次应该在1-5之间'
});
分享到:
相关推荐
根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...
方法一是通过直接实例化TextField对象,然后将其添加到FormPanel中。例如: ```javascript var textfield = new Ext.form.TextField({ fieldLabel: ' 用户名 ', emptyText: ' 请输入 ..', allowBlank: false });...
创建一个TextField实例通常需要指定ID和配置项。例如: ```javascript var tf = new Ext.form.TextField({ id: 'myTextField', fieldLabel: '请输入文字', width: 200 }); ``` 这里,`id`用于唯一标识字段...
### ExtJS 实践大量实例讲解 #### 概述 ExtJS 是一款用于构建现代 Web 应用的强大框架,它提供了一系列丰富的 UI 组件、数据处理功能以及与后端交互的能力。本文将通过大量的实例来讲解如何使用 ExtJS 来开发高...
`xtype`机制极大地简化了组件实例化的过程,提高了开发效率。 ##### 组件xtype列表 以下是ExtJS3中常见组件的`xtype`及其对应的类名: - `box`: `Ext.BoxComponent` - `button`: `Ext.Button` - `buttongroup`: `...
4.1.7 Ext.form.field.Checkbox复选框和Ext.form.field.Radio单选框 4.1.8 Ext.form.CheckboxGroup和Ext.form.RadioGroup 4.1.9 Ext.form.field.Trigger触发字段 4.1.10 Ext.form.field.Spinner微调字段 4.1.11 ...
EXTJS 是一个流行的JavaScript框架,用于构建富...在EXTJS开发中,理解和熟练运用`xtype`、`Ext.QuickTips.init()`以及`vtype`能够帮助我们更高效地构建用户界面,提供更好的用户体验,同时确保数据的准确性和安全性。
- `getForm()`: 返回 `Ext.form.BasicForm` 实例。 - `load(Object options)`: 加载表单数据。 - `startMonitoring()`: 开始监听表单变化。 - `stopMonitoring()`: 停止监听表单变化。 #### 四、`Ext.form....
每个字段实例都有`validate()`方法,用于执行字段级别的验证。若验证失败,`getErrors()`方法会返回一个错误消息数组。 为了实现更复杂的验证逻辑,可以创建自定义的验证器函数。这些函数接收字段值作为参数,返回...
`FormPanel`对象也提供了`getForm()`方法获取表单实例,可以调用`isValid()`检查整个表单是否有效,或者使用`submit()`方法来异步提交表单并处理服务器响应。 总结,ExtJS的`FormLayout`和`FormPanel`为创建交互式...
通过`FormValidator.create()`方法创建验证器实例,然后指定验证规则,如`{required: true}`表示字段必须填写。YUI还提供了`YUI.DOM.addClass/removeClass`方法来管理元素的类,以及`YUI.Node.show/hide`控制提示...
#### 二、常见正则表达式实例分析 ##### 1. 验证纯数字 - **纯数字(任意长度)**:`^[0-9]*$` - **解释**:该表达式用于匹配任何由数字组成的字符串,包括空串。 - **固定长度数字**:`^\d{n}$` - **解释**:此...