首页澳门新葡亰官方网站 › 澳门新葡亰官方网站js:日期正则表明式及检查实验

澳门新葡亰官方网站js:日期正则表明式及检查实验

这是yyyy-mm-dd hh:mm:ss 的 
/^(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})$/ ; 
这是 yyyy-mm-ddde 的
/^(d{4})-(d{2})-(d{2})$/ 

这是yyyy-mm-dd hh:mm:ss 的 
/^(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})$/ ; 
这是 yyyy-mm-ddde 的
/^(d{4})-(d{2})-(d{2})$/ 

我们这里验证日期格式为yyyy-mm-dd格式,这样有固定格式了我们的正则时就可以这样写/^(\d{4})-(\d{2})-(\d{2})$/来操作,下面我来介绍一下。

Extjs表单的数据校验以及正则表达式校验

Extjs表单验证包括空验证、用vtype格式进行简单的验证、高级自定义密码验证、使用正则表达式验证等等。验证可以使用js提供的脚本来进行代码编写,但ext本身对表单进行了封装,并允许客户对其进行扩展,因此使用Extjs提供的验证能够大大简化验证判断。
在验证之前,先看下面两个语句:

//放在onReady的function(){}中 
Ext.QuickTips.init(); //为组件提供提示信息功能,form的主要提示信息就是客户端验证的错误信息。 
Ext.form.Field.prototype.msgTarget='side'; //提示的方式,枚举值为: 

qtip-当鼠标移动到控件上面时显示提示;
title-在浏览器的标题显示,但是测试结果是和qtip一样的;
under-在控件的底下显示错误提示;
side-在控件右边显示一个错误图标,鼠标指向图标时显示错误提示. 默认值;
id-[element id]错误提示显示在指定id的HTML元件中

1.一个最简单的例子:空验证
代码如下:

//空验证的两个参数 
allowBlank:false//false则不能为空,默认为true 
blankText:string//当为空时的错误提示信息 

js代码为:
代码如下:

var form1 = new Ext.form.FormPanel({ 
width:350, 
renderTo:"form1", 
title:"FormPanel", 
defaults:{xtype:"textfield",inputType:"password"}, 
items:[ 
{fieldLabel:"不能为空", 
allowBlank:false, //不允许为空 
blankText:"不能为空", //错误提示信息,默认为This field is required! 
id:"blanktest", 
} 
] 
}); 

2.用vtype格式进行简单的验证。
在此举邮件验证的例子,重写上面代码的items配置:
代码如下:

items:[ 
{fieldLabel:"不能为空", 
vtype:"email",//email格式验证 
vtypeText:"不是有效的邮箱地址",//错误提示信息,默认值我就不说了 
id:"blanktest", 
anchor:"90%" 
} 

你可以修改上面的vtype为以下的几种extjs的vtype默认支持的验证:
//form验证中vtype的默认支持类型

1.alpha //只能输入字母,无法输入其他(如数字,特殊符号等)
2.alphanum//只能输入字母和数字,无法输入其他
3.email//email验证,要求的格式是""
4.url//url格式验证,要求的格式是

3.高级自定义密码验证
前面的验证都是extjs已经提供的,我们也可以自定义验证函数。
代码如下:
//先用Ext.apply方法添加自定义的password验证函数(也可以取其他的名字)

Ext.apply(Ext.form.VTypes,{ 
password:function(val,field){//val指这里的文本框值,field指这个文本框组件,大家要明白这个意思 
if(field.confirmTo){//confirmTo是我们自定义的配置参数,一般用来保存另外的组件的id值 
var pwd=Ext.get(field.confirmTo);//取得confirmTo的那个id的值 
return (val==pwd.getValue()); 
} 
return true; 
} 
}); 

//配置items参数

items:[{fieldLabel:"密码", 
id:"pass1", 
},{ 
fieldLabel:"确认密码", 
id:"pass2", 
vtype:"password",//自定义的验证类型 
vtypeText:"两次密码不一致!", 
confirmTo:"pass1",//要比较的另外一个的组件的id 
} 

4.使用正则表达式验证
代码如下:

new Ext.form.TextField({ 
fieldLabel : "姓名", 
name : "author_nam", 
regex : /[u4e00-u9fa5]/, //正则表达式在/...../之间. [u4e00-u9fa5] : 只能输入中文. 
regexText:"只能输入中文!", //正则表达式错误提示 
allowBlank : false //此验证依然有效.不许为空.

 })

我的项目截图:
澳门新葡亰官方网站 1

澳门新葡亰官方网站 2

一些自定义验证函数

  1. Ext.apply(Ext.form.VTypes,
  2. {
  3. daterange: function(val, field)
  4. {
  5. var date = field.parseDate(val);
    1. // We need to force the picker to update values to recaluate the
      disabled dates display
  6. var dispUpd = function(picker)
  7. {
  8. var ad = picker.activeDate;
  9. picker.activeDate = null;
  10. picker.update(ad);
  11. };
    1. if (field.startDateField)
  12. {
  13. var sd = Ext.getCmp(field.startDateField);
  14. sd.maxValue = date;
  15. if (sd.menu && sd.menu.picker)
  16. {
  17. sd.menu.picker.maxDate = date;
  18. dispUpd(sd.menu.picker);
  19. }
  20. }
  21. else if (field.endDateField)
  22. {
  23. var ed = Ext.getCmp(field.endDateField);
  24. ed.minValue = date;
  25. if (ed.menu && ed.menu.picker)
  26. {
  27. ed.menu.picker.minDate = date;
  28. dispUpd(ed.menu.picker);
  29. }
  30. }
  31. return true;
  32. },
    1. password: function(val, field)
  33. {
  34. if (field.initialPassField)
  35. {
  36. var pwd = Ext.getCmp(field.initialPassField);
  37. return (val == pwd.getValue());
  38. }
  39. return true;
  40. },
  41. passwordText: '两次输入的密码不一致!',
    1. chinese:function(val,field)
  42. {
  43. var reg = /^[/u4e00-/u9fa5]+$/i;
  44. if(!reg.test(val))
  45. {
  46. return false;
  47. }
  48. return true;
  49. },
  50. chineseText:'请输入中文',
    1. age:function(val,field)
  51. {
  52. try
  53. {
  54. if(parseInt(val) >= 18 && parseInt(val) <= 100)
  55. return true;
  56. return false;
  57. }
  58. catch(err)
  59. {
  60. return false;
  61. }
  62. },
  63. ageText:'年龄输入有误',
    1. alphanum:function(val,field)
  64. {
  65. try
  66. {
  67. if(!//W/.test(val))
  68. return true;
  69. return false;
  70. }
  71. catch(e)
  72. {
  73. return false;
  74. }
  75. },
  76. alphanumText:'请输入英文字母或是数字,其它字符是不允许的.',
    1. url:function(val,field)
  77. {
  78. try
  79. {
  80. if(/^(http|https|ftp):////(([A-Z0-9][A-Z0-9_-]*)(/.[A-Z0-9][A-Z0-9_-]*)+)(:(/d+))?//?/i.test(val))
  81. return true;
  82. return false;
  83. }
  84. catch(e)
  85. {
  86. return false;
  87. }
  88. },
  89. urlText:'请输入有效的URL地址.',
    1. max:function(val,field)
  90. {
  91. try
  92. {
  93. if(parseFloat(val) <= parseFloat(field.max))
  94. return true;
  95. return false;
  96. }
  97. catch(e)
  98. {
  99. return false;
  100. }
  101. },
  102. maxText:'超过最大值',
    1. min:function(val,field)
  103. {
  104. try
  105. {
  106. if(parseFloat(val) >= parseFloat(field.min))
  107. return true;
  108. return false;
  109. }
  110. catch(e)
  111. {
  112. return false;
  113. }
  114. },
  115. minText:'小于最小值',
    1. datecn:function(val,field)
  116. {
  117. try
  118. {
  119. var regex = /^(/d{4})-(/d{2})-(/d{2})$/;
  120. if(!regex.test(val)) return false;
  121. var d = new Date(val.replace(regex, '$1/$2/$3'));
  122. return (parseInt(RegExp.$2, 10) == (1+d.getMonth())) &&
    (parseInt(RegExp.$3, 10) == d.getDate())&&(parseInt(RegExp.$1, 10)
    == d.getFullYear());
  123. }
  124. catch(e)
  125. {
  126. return false;
  127. }
  128. },
  129. datecnText:'请使用这样的日期格式: yyyy-mm-dd. 例如:2008-06-20.',
    1. integer:function(val,field)
  130. {
  131. try
  132. {
  133. if(/^[-+]?[/d]+$/.test(val))
  134. return true;
  135. return false;
  136. }
  137. catch(e)
  138. {
  139. return false;
  140. }
  141. },
  142. integerText:'请输入正确的整数',
    1. minlength:function(val,field)
  143. {
  144. try
  145. {
  146. if(val.length >= parseInt(field.minlen))
  147. return true;
  148. return false
  149. }
  150. catch(e)
  151. {
  152. return false;
  153. }
  154. },
  155. minlengthText:'长度过小',
    1. maxlength:function(val,field)
  156. {
  157. try
  158. {
  159. if(val.length <= parseInt(field.maxlen))
  160. return true;
  161. return false;
  162. }
  163. catch(e)
  164. {
  165. return false;
  166. }
  167. },
  168. maxlengthText:'长度过大',
    1. ip:function(val,field)
  169. {
  170. try
  171. {
  172. if((/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(val)))
  173. return true;
  174. return false;
  175. }
  176. catch(e)
  177. {
  178. return false;
  179. }
  180. },
  181. ipText:'请输入正确的IP地址',
    1. phone:function(val,field)
  182. {
  183. try
  184. {
  185. if(/^((0[1-9]{3})?(0[12][0-9])?[-])?/d{6,8}$/.test(val))
  186. return true;
  187. return false;
  188. }
  189. catch(e)
  190. {
  191. return false;
  192. }
  193. },
  194. phoneText:'请输入正确的电话号码,如:0920-29392929',
    1. mobilephone:function(val,field)
  195. {
  196. try
  197. {
  198. if(/(^0?[1][35][0-9]{9}$)/.test(val))
  199. return true;
  200. 澳门新葡亰官方网站,return false;
  201. }
  202. catch(e)
  203. {
  204. return false;
  205. }
  206. },
  207. mobilephoneText:'请输入正确的手机号码',
    1. alpha:function(val,field)
  208. {
  209. try
  210. {
  211. if( /^[a-zA-Z]+$/.test(val))
  212. return true;
  213. return false;
  214. }
  215. catch(e)
  216. {
  217. return false;
  218. }
  219. },
  220. alphaText:'请输入英文字母'
  221. });

    Extjs表单验证包括空验证、用vtype式进行简单的验证、高级自定义密码验证、使用正则表达式验证等...

function validateCNDate( strValue ) {
var objRegExp = /^d{4}(-|/|.)d{1,2}1d{1,2}$/

function validateCNDate( strValue ) {
var objRegExp = /^d{4}(-|/|.)d{1,2}1d{1,2}$/

例1

if(!objRegExp.test(strValue))
return false; 
else{
var arrayDate = strValue.split(RegExp.$1); 
var intDay = parseInt(arrayDate[2],10);
var intYear = parseInt(arrayDate[0],10);
var intMonth = parseInt(arrayDate[1],10);

if(!objRegExp.test(strValue))
return false; 
else{
var arrayDate = strValue.split(RegExp.$1); 
var intDay = parseInt(arrayDate[2],10);
var intYear = parseInt(arrayDate[0],10);
var intMonth = parseInt(arrayDate[1],10);

 代码如下

if(intMonth > 12 || intMonth < 1) {
return false;
}

if(intMonth > 12 || intMonth < 1) {
return false;
}

复制代码

转载本站文章请注明出处:澳门新葡亰官方网站 http://www.radioritmo-bl.com/?p=172

上一篇:

下一篇:

相关文章