696a7904c2789aa4e9aa1593e9148fc8c4f80341.svn-base 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. /*字符串去空格*/
  2. function trimStrOT(str){
  3. return str==null||str==''?'':str.replace(/\s+/g,'');
  4. }
  5. /*字符串类型验证*/
  6. function strTypeJdg(str,jdgType){
  7. if (trimStrOT(str)!=''){
  8. var jdgStr='';
  9. switch(jdgType){
  10. case null:
  11. jdgStr='required';/*非空*/
  12. break;
  13. case 'digital':/*数字*/
  14. jdgStr=/^[0-9]+([.]\d{1,4})?$/;
  15. break;
  16. case 'pInteger':/*非0正整数*/
  17. jdgStr=/^\+?[1-9][0-9]*$/;
  18. break;
  19. case 'money':/*金钱*/
  20. jdgStr=/^[0-9]*(\.[0-9]{1,7})?$/;
  21. break;
  22. case 'username':/*数字、26个英文字母或者下划线组成*/
  23. jdgStr=/[\u4E00-\u9FA5\w]{2,}$/;
  24. break;
  25. case 'password':/*密码组成判断,字母开头,长度在6~20之间,只能包含字符、数字和下划线*/
  26. jdgStr=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,19}$/;
  27. break;
  28. case 'chn':/*汉字*/
  29. jdgStr=/^[\u4e00-\u9fa5]{0,}$/;
  30. break;
  31. case 'tel':/*座机、传真号码*/
  32. jdgStr=/^[0-9]{3,4}(\-)[0-9]{7,8}(\-[0-9]{1,4})?$/;
  33. break;
  34. case 'mobile':/*手机号码*/
  35. jdgStr=/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/;
  36. break;
  37. case 'mail':/*邮箱*/
  38. jdgStr=/^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/;
  39. break;
  40. case 'postal':/*邮政编码*/
  41. jdgStr=/^[0-9]{6}$/;
  42. break;
  43. case 'date':/*中文日期*/
  44. jdgStr=/^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|[12]\d{1}|3[01])$/;
  45. break;
  46. case 'ID':/*身份证*/
  47. jdgStr=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  48. break;
  49. default:
  50. break;
  51. }
  52. return jdgStr!=''?jdgStr!='required'?jdgStr.test(str):trimStrOT(str)!='':false;
  53. }else{
  54. return false;
  55. }
  56. }
  57. /*提示组件显示隐藏*/
  58. function tipsEleOperation(obj,tipsText,isValidatePass){
  59. /*判断组件是否存在*/
  60. var eleContainer=obj.parents('.eleContainer:first');/*提示组件的元素容器*/
  61. /*寻找提示组件*/
  62. var tipsEle=eleContainer.find('.tipsEle');
  63. if(tipsEle.size()==0){/*提示不存在,插入组件*/
  64. /*组件拼装*/
  65. var tipsEleStr='<span class="tipsEle eleVAlignM">'
  66. +'<div class="tipsContent eleShadow eleRadius">'
  67. +'<div class="tipsArrow"><div></div></div>'
  68. +'<div class="tipsTitle">'
  69. +'<span class="commonIcon icon-warning eleVAlignM"></span>'
  70. +'<span class="titleText textS12 eleVAlignM"></span>'
  71. +'</div>'
  72. +'</div>'
  73. +'</span>';
  74. /*组件插入*/
  75. eleContainer.append(tipsEleStr);
  76. /*插入完毕后先隐藏*/
  77. tipsEle=eleContainer.find('.tipsEle');/*刷新获取的组件*/
  78. tipsEle.hide();
  79. }
  80. /*改变文本*/
  81. tipsEle.find('.titleText').html(tipsText);
  82. /*判断是否验证通过*/
  83. if(isValidatePass){/*验证通过*/
  84. /*操作提示组件,若显示则隐藏,若隐藏则不做操作*/
  85. if(!tipsEle.is(":hidden")){
  86. tipsEle.hide();
  87. }
  88. }else{/*验证不通过*/
  89. /*操作提示组件,若隐藏则显示,若显示则不做操作*/
  90. if(tipsEle.is(":hidden")){
  91. tipsEle.show();
  92. }
  93. }
  94. }
  95. /*
  96. * 清除区域内提示组件
  97. * areaID:区域ID
  98. */
  99. function clearAreaTipsEle(areaID){
  100. $('#'+areaID).find('.tipsEle').hide();
  101. }
  102. /*
  103. * 控件值类型验证
  104. * jdgType:验证类型,值如下:
  105. * 数字(digital),非0正整数(pInteger),金钱(money),用户名(username)
  106. * 密码(password),汉字(chn),固定电话、传真(tel),手机(mobile)
  107. * 邮箱(mail),日期(date),身份证(ID),非空验证(null)
  108. * tipsText:提示文本
  109. * required:是否必填项,值:true/false
  110. * */
  111. function commonTypeJdg(id,jdgType,tipsText,required){
  112. var obj = $("#" + id);
  113. var str=obj.val();
  114. var validateResult=required?strTypeJdg(str,jdgType):trimStrOT(str)!=''?strTypeJdg(str,jdgType):true;
  115. tipsEleOperation(obj,tipsText,validateResult);
  116. return validateResult;
  117. }
  118. /*
  119. * 金钱、长度验证
  120. * jdgType:验证类型,值如下:
  121. * 数字(digital),非0正整数(pInteger),金钱(money),用户名(username)
  122. * 密码(password),汉字(chn),固定电话、传真(tel),手机(mobile)
  123. * 邮箱(mail),日期(date),身份证(ID),非空验证(null)
  124. * startLen:开始日期
  125. * endLen:结束日期
  126. * tipsText:提示文本
  127. * required:是否必填项,值:true/false
  128. * */
  129. function moneyAndLengthJdg(id, jdgType, startLen, endLen, tipsText, required){
  130. var obj = $('#' + id);
  131. var str = obj.val(); /*获取该对象的值*/
  132. var validateResult = false;
  133. if(trimStrOT(str) != ''){/*对当前对象去空格之后判断不为空*/
  134. if(startLen!=null&&endLen!=null&&startLen<endLen){
  135. /*开始 结束长度均不为空 且 开始值小于结束值*/
  136. if(typeof str!='string')str += '';
  137. var length = str.replace(/[^x00-xff]/g,'01').length;
  138. validateResult=(startLen<=length&&length<=endLen)&&strTypeJdg(str,jdgType);
  139. }else{
  140. validateResult=false;
  141. }
  142. }else {/*对其是否必填*/
  143. validateResult=required?false:true;
  144. }
  145. tipsEleOperation(obj,tipsText,validateResult);
  146. return validateResult;
  147. }
  148. /*
  149. *字符串长度验证
  150. * startLen:最小长度
  151. * endLen:最大长度
  152. * tipsText:提示文本
  153. * required:是否必填项,值:true/false
  154. * */
  155. function commonLengthJdg(id,startLen,endLen,tipsText,required){
  156. var obj = $("#" + id);
  157. var str=obj.val();
  158. var validateResult=false;
  159. if (trimStrOT(str)!=''){
  160. if(startLen!=null&&endLen!=null&&startLen<endLen){
  161. if (typeof str != 'string')str += '';
  162. var length=str.replace(/[^x00-xff]/g,'01').length;
  163. validateResult=startLen<=length&&length<=endLen;
  164. }else{
  165. validateResult=false;
  166. }
  167. }else{
  168. validateResult=required?false:true;
  169. }
  170. tipsEleOperation(obj,tipsText,validateResult);
  171. return validateResult;
  172. }
  173. /*
  174. *2个日期前后验证
  175. * startID:开始日期控件id
  176. * endID:结束日期控件id
  177. * tipsText:提示文本
  178. * required:是否必填项
  179. * */
  180. function doubleDateJdg(startID, endID, tipsText,required) {
  181. var startDateObj = $("#" + startID);
  182. var endDateObj = $("#" + endID);
  183. var startDate=trimStrOT(startDateObj.val());
  184. var endDate=trimStrOT(endDateObj.val());
  185. var validateResult=false;
  186. if(startDate!=''&&endDate!=''){
  187. var d1 = new Date(startDate.replace(/\-/g, "\/"));
  188. var d2 = new Date(endDate.replace(/\-/g, "\/"));
  189. validateResult=startDate!=''&&endDate!=''&&d1<d2;
  190. tipsEleOperation(startDateObj,tipsText,validateResult);
  191. }else{
  192. validateResult=required?false:true;
  193. }
  194. return validateResult;
  195. }
  196. /*
  197. * 重复密码验证
  198. * pwdID:密码控件id
  199. * rePwdID:重复密码控件id
  200. * tipsText:提示文本
  201. * required:是否必填项
  202. * */
  203. function passwordJdg(pwdID,rePwdID,tipsText,required) {
  204. var passwordObj = $("#" + pwdID);
  205. var rePasswordObj = $("#" + rePwdID);
  206. var password=trimStrOT(passwordObj.val());
  207. var rePassword=trimStrOT(rePasswordObj.val());
  208. var validateResult=false;
  209. if(password!=''&&rePassword!=''){
  210. validateResult=password===rePassword;
  211. tipsEleOperation(rePasswordObj,tipsText,validateResult);
  212. }else{
  213. validateResult=required?false:true;
  214. }
  215. return validateResult;
  216. }
  217. /*对比前后两个值*/
  218. function compareValJdg(beforeID, afterID){
  219. var beforeObj = $("#" + beforeID);
  220. var afterObj = $("#" + afterID);
  221. var beforeVal = trimStrOT(beforeObj.val());
  222. var afterVal = trimStrOT(afterObj.val());
  223. if(beforeVal == afterVal){
  224. beforeObj.hide();
  225. }else{
  226. beforeObj.show();
  227. }
  228. }