页面输入完整性是编写BS经常遇到的问题,如果那里需要就到那里写,那可是要花不少的时候,并且造成不必要的浪费,下面是一个通过校验脚本,使用非常方便,通过传入FORM名就可以进行校验,通过在页面控件中增加用户本身自定义属性,进行方便的验证,包括数字的输入、密码的输入、EMAIL的输入,用户本身可以进行无限的扩展,使用如下,在页面中加入如下代码:

  1. <form name="form1">
  2. <input type="text" name="t1" req="0" size="20"><br>
  3. <input type="text" name="t2" req="0" size="20"><br>
  4. <input type="text" name="t3" req="0" size="20"><br>
  5. <input type="text" name="t4" req="1" size="20"><br>
  6. <input type="text" name="t5" req="1" customtype="email" displayname="电子邮件" size="20"><br>
  7. <input type="button" name="bt" value="check" onclick="checkForm(document.form1)">
  8. </form>

并在页头加以包含以下代码的JS脚本:

  1. var customtypes = new Array("num","plus","int","email","link","password","name","date","money","date8");
  2. var custommessage = new Array(
  3. "不是一个有效的数字。",
  4. "不是一个有效的正整数。",
  5. "不是一个有效的整数。",
  6. "不是一个有效的电子邮件地址。",
  7. "不是一个有效的链接,请确认输入了完整的地址,例如http://www.cnlist.com。",
  8. "不是一个有效的密码,密码只能使用字母、下划线与数字,不能包含符号与空格。",
  9. "不是一个有效的名称,名称只能使用字母、下划线与数字,不能包含符号与空格。",
  10. "不是一个有效的日期。",
  11. "不是一个有效的money格式。",
  12. "不是一个有效的8位日期,如:20050801。"
  13. );
  14. function checkForm(oForm){
  15. window.event.returnValue = false;
  16. for (var i=0;i<oForm.all.tags("input").length;i++){
  17. var ele = oForm.all.tags("input")[i];
  18. var ct = ele.getAttribute("customtype");
  19. var req = ele.getAttribute("req");
  20. var dn = ele.getAttribute("displayname");
  21. if (null == dn){
  22. dn = ele.name;
  23. }
  24. dn = "“" + dn + "”";
  25. if(ele.value!=null){
  26. ele.value = ele.value.replace(/%/g, "%");
  27. }
  28. var nr = new String(ele.value);
  29. if ("1" == req){
  30. if (nr.length < 1){
  31. alert(dn + "不可以省略,请重新输入。");
  32. //ele.focus();
  33. focusIt(ele);
  34. return false;
  35. }
  36. }
  37. if((''==req || '0' ==req || null==req) && (ele.value == "")) continue;//不必要且没有输入时,下一个
  38. if ((("" == req)||(null == ct)) &&(ele.value == "")) continue;
  39. //检查自定义类型
  40. //纠正自定义类型在req不等于1时仍要求输入的bug
  41. if (("1" == req) || (nr.length > 0)) {
  42. for (var j=0;j<customtypes.length;j++){
  43. if (ct == customtypes[j]){
  44. if(ct=="money"){
  45. eval("var rtn = check_" + customtypes[j] + "(ele);");
  46. }else{
  47. eval("var rtn = check_" + customtypes[j] + "(ele.value);");
  48. }
  49. if (!rtn){
  50. alert(dn + custommessage[j]);
  51. //ele.focus();
  52. focusIt(ele);
  53. return false;
  54. }
  55. }
  56. }
  57. }
  58. }
  59. window.event.returnValue = true;
  60. return true;
  61. }
  62. function check_money(s) {
  63. s.value=s.value.replace(/,/g, "")
  64. var re = /^(/+|-)?/d+(./d+)?$/i;
  65. return re.test(s.value);
  66. }
  67. function check_email(s){
  68. var re = /^/w+@(/w)+((.(/w)+)+)?$/i;
  69. return re.test(s);
  70. }
  71. function check_num(s){
  72. var re = /^(/+|-)?/d+(./d+)?$/i;
  73. return re.test(s);
  74. }
  75. function check_int(s){
  76. var re = /^(/+|-)?/d+$/i;
  77. return re.test(s);
  78. }
  79. function check_plus(s) {
  80. var re = /^[1-9]/d*$/i
  81. return re.test(s);
  82. }
  83. function check_link(s){
  84. var re = /^(http|mailto|ftp|https|telnet)://{2}/i;
  85. return re.test(s);
  86. }
  87. function check_password(s){
  88. var re = /^/w+$/i;
  89. return re.test(s);
  90. }
  91. function check_name(s){
  92. return check_password(s);
  93. }
  94. function check_date8(DateString){
  95. return isDateEight(DateString);
  96. }
  97. //日期检测
  98. function check_date(DateString){
  99. if (DateString==null) return false;
  100. if (Dilimeter=='' || Dilimeter==null)
  101. var Dilimeter = '-';
  102. if (Dilimeter.indexOf("/")>0)
  103. {
  104. Dilimeter="/";
  105. }
  106. var tempy='';
  107. var tempm='';
  108. var tempd='';
  109. var tempH="";
  110. var tempM="";
  111. var tempS="";
  112. var tempymd="";
  113. var temphms="";
  114. var tempArray;
  115. if (DateString.length<8 && DateString.length>19) {
  116. return false;
  117. }
  118. if (DateString.indexOf(" ")>0)
  119. {
  120. temp=DateString.split(" ");
  121. tempymd=temp[0];
  122. temphms=temp[1];
  123. }
  124. else
  125. {
  126. tempymd=DateString;
  127. temphms="00:00:00";
  128. }
  129. tempArray = tempymd.split(Dilimeter);
  130. if (tempArray.length!=3) {
  131. return false;
  132. }
  133. if (tempArray[0].length==4)
  134. {
  135. tempy = tempArray[0];
  136. tempd = tempArray[2];
  137. tempm = tempArray[1];
  138. }
  139. else
  140. {
  141. tempy = tempArray[2];
  142. tempd = tempArray[1];
  143. tempm = tempArray[0];
  144. }
  145. tempArray = temphms.split(":");
  146. if (tempArray.length>3  || tempArray.length<2) {
  147. return false;
  148. }
  149. switch (tempArray.length) {
  150. case 2:
  151. tempH=tempArray[0];
  152. tempM=tempArray[1];
  153. tempS="00";
  154. break;
  155. case 3:
  156. tempH=tempArray[0];
  157. tempM=tempArray[1];
  158. tempS=tempArray[2];
  159. break;
  160. }
  161. var tDateString = tempy + '/'+tempm + '/'+tempd+' '+tempH+":"+tempM+":"+tempS;
  162. var tempDate = new Date(tDateString);
  163. if (isNaN(tempDate)) {
  164. return false;
  165. }
  166. if ((tempDate.getYear().toString()==tempy || tempDate.getYear()==parseInt(tempy,10)-1900)
  167. && (tempDate.getMonth()==parseInt(tempm,10)-1)
  168. && (tempDate.getDate()==parseInt(tempd,10))
  169. && (tempDate.getHours().toString()==parseInt(tempH,10))
  170. && (tempDate.getMinutes().toString()==parseInt(tempM,10))
  171. && (tempDate.getSeconds().toString()==parseInt(tempS,10)))
  172. {
  173. return true;
  174. }
  175. else
  176. {
  177. alert('tDateString='+tDateString);
  178. return false;
  179. }
  180. }
  181. //激活输入组件的焦点
  182. function focusIt(obj){
  183. try{
  184. var ele = mtb;
  185. }catch(e){
  186. try{
  187. obj.focus();
  188. return;
  189. }catch(e){
  190. return;
  191. }
  192. }
  193. for (var i=0;i<ele.length;i++){
  194. swH(i);
  195. try{
  196. obj.focus();
  197. }catch(e){
  198. continue;
  199. }
  200. break;
  201. }
  202. try{
  203. obj.focus();
  204. }catch(e){
  205. return false;
  206. }return true;
  207. }

使用JAVASCRIPT进行数据完整性验证的更多相关文章

  1. Javascript之登陆验证

    匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配网址URL的正则表达式:http ...

  2. JavaScript表单验证年龄

    JavaScript表单验证年龄,判断一个输入量是否符合年龄,通过正则表达式实现. //检查年龄 function isAge(str){ var mydate=new Date; var now=m ...

  3. 前端工具 - 15个最佳的 JavaScript 表单验证库

    客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...

  4. JavaScript表单验证和正则表达式

    JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: <! ...

  5. 15个最佳的 JavaScript 表单验证库

    客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...

  6. JavaScript 表单验证入门

    JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单 ...

  7. JavaScript 表单验证 案例

    JavaScript 表单验证 案例 版权声明:未经授权,严禁转载!   编写 HTML 文件,搭建主体界面 <html> <head> <meta charset=&q ...

  8. 10个强大的Javascript表单验证插件推荐

    创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...

  9. JavaScript 表单验证正则表达式大全

    JavaScript 表单验证正则表达式大全[转载] 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...

随机推荐

  1. 开发移动 APP 时,你应注意这 5 个细节

    智能手机的普及带动了大批移动应用的诞生,这些应用能够帮助人们解决日常生活所面临的种种问题.Smart Insights 发表的一份报告指出,移动应用占人们使用智能手机总时间的89%,因此,为了确保你所 ...

  2. android路径获取

    //内部路径 Environment.getDataDirectory()=/data Environment.getDownloadCacheDirectory()=/cache Environme ...

  3. Jquery—Jquery中的(function($){...})(jQuery)

    当你第一眼看到"(function($){...})(jQuery)"的时候.你有什么感觉?呵呵呵,我当时还是止不住的从心底里骂了一句--操,这他妈什么劳什子.时过境迁,对于如今无 ...

  4. webservice接口示例(spring+xfire+webservice)

      webservice接口示例(spring+xfire+webservice) CreateTime--2018年4月2日17:36:07 Author:Marydon 一.准备工作 1.1 ja ...

  5. 霍炬:再谈百度:KPI、无人机,以及一个必须给父母看的案例

    作者:霍炬.  原文链接:http://www.donews.com/idonews/article/8147.shtm 没想到我之前的一篇关于百度的文章引起了这么大的反馈. 非常多朋友称赞我写的好, ...

  6. 机器学习数学基础- gradient descent算法(上)

    为什么要了解点数学基础 学习大数据分布式计算时多少会涉及到机器学习的算法,所以理解一些机器学习基础,有助于理解大数据分布式计算系统(比如spark)的设计.机器学习中一个常见的就是gradient d ...

  7. javascript 原生实现 jquery live/delegate

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  8. 解析theme()

    drupal_render()只是对theme()的调用做了包装,真正做任务的还是theme(). function theme($hook, $variables = array()) { ... ...

  9. 【TP3.2】路由匹配和规则

    TP3.2框架的路由匹配和规则处理: 包括:静态路由,动态路由,多参数路由.正则路由 <?php return array( //'配置项'=>'配置值' /* * 路由开启和匹配.首先开 ...

  10. Solr 搜索功能使用

          http://wiki.apache.org/solr/SolrQuerySyntax  http://www.solrcn.com/index.php?s=查询