extjs中regex和vtype区别以及regex的详细用法

来源:互联网 发布:win7网络修复大师 编辑:程序博客网 时间:2024/06/02 14:54

extjs中regex和vtype都是用来进行表单验证的,regex是通过正则表达式对单个输入控件的内容进行格式验证,而vtype既可以对单个控件的输入格式进行验证还能对多可控件的内容进行关联验证。比如对于两个日期控件,用regex只能验证输入的是不是日期格式,而两个日期的相对大小关系验证就无能为力了,这就需要vtype来完成了。但这并不是说vtype比regex正则验证更强大,因为extjs中默认提供的vtype验证只有alpha(字母)、alphanum(字母数字)、url(网址)、email(邮件地址)等,这些验证通过regex也可以轻而易举的完成,要实现多个控件关联验证必须要自己写代码。

extjs中regex(正则)用法:

      extjs中与正则验证相关的属性是regex和regexText。regex用来输入正则表达式,regexText则是在验证失败时的提示信息。正则验证很简单,直接在regex属性中输入正则格式即可,下面是extjs中常用的正则表达式

 
使用时复制双引号之前的内容即可 
例如:"^\d+$"  //非负整数(正整数 + 0)        程序中就是/^\d+$/ 
 
"^\d+$"  //非负整数(正整数 + 0)  "^[0-9]*[1-9][0-9]*$"  //正整数  
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)  "^-[0-9]*[1-9][0-9]*$"  //负整数  "^-?\d+$"    //整数  
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)  
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数  "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)  
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数  "^(-?\d+)(\.\d+)?$"  //浮点数  
"^[A-Za-z]+$"  //由26个英文字母组成的字符串  "^[A-Z]+$"  //由26个英文字母的大写组成的字符串  "^[a-z]+$"  //由26个英文字母的小写组成的字符串  
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串  "^\w+$"  //由数字、26个英文字母或者下划线组成的字符串  
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址  "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url  
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日  /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年  
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil  "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码  
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址

匹配中文字符的正则表达式: [\u4e00-\u9fa5]  匹配双字节字符(包括汉字在内):[^\x00-\xff]  
匹配空行的正则表达式:\n[\s| ]*\r  
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/  匹配首尾空格的正则表达式:(^\s*)|(\s*$)  
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  
匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$  
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?  匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

 

vtype用法:extjs作用有vtype和vtypeText两个属性。vtype用来输入验证函数名称(要自己写),vtypeText用来显示验证失败时的提示信息。在此就直接引用别人写的了:

http://blog.csdn.net/xzknet/article/details/6541922

最近公司开发项目在用ExtJs,碰到验证的就大概的总结了一些常用的验证。自定义的验证主要有两种方式:一种是单字段的自定义验证,另一种是多字段间的验证。对于单字段的验证主要通过regex配置项指定自定义正则表达式进行验证,而字段多的验证可以通过字定义VType类型进行验证支持
0 0
原创粉丝点击