formValidate.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. /********************************表单校验******************************/
  2. /*
  3. 输入:str
  4. 返回:
  5. 如果全是空返回true,否则返回false
  6. */
  7. function isNull(str) {
  8. if (str == "")
  9. return true;
  10. var regu = "^[ ]+$";
  11. var re = new RegExp(regu);
  12. return re.test(str);
  13. }
  14. /*
  15. 输入:str
  16. 全是字母验证
  17. 如果全是字母返回true,否则返回false
  18. */
  19. function checkZm(zm){
  20. var zmReg=/^[a-zA-Z]*$/;
  21. if(zm!=""&&!zmReg.test(zm)){
  22. //alert("只能是英文字母!");
  23. return false;
  24. }
  25. return true;
  26. }
  27. /*
  28. 检查输入字符串是否只由英文字母和数字组成
  29. 输入:
  30. s:字符串
  31. 返回:
  32. 如果通过验证返回true,否则返回false
  33. */
  34. function checkZmOrNum(zmnum){
  35. var zmnumReg=/^[0-9a-zA-Z]*$/;
  36. if(zmnum!=""&&!zmnumReg.test(zmnum)){
  37. //alert("只能输入是字母或者数字,请重新输入");
  38. return false;
  39. }
  40. return true;
  41. }
  42. /*
  43. 检查输入字符串是否由英文字母和数字和下划线组成
  44. 输入:
  45. s:字符串
  46. 返回:
  47. 如果通过验证返回true,否则返回false
  48. */
  49. function isNumberOr_Letter(s) {
  50. var regu = "^[0-9a-zA-Z\_]+$";
  51. var re = new RegExp(regu);
  52. if (re.test(s)) {
  53. return true;
  54. } else {
  55. return false;
  56. }
  57. }
  58. //检验时间大小(与当前时间比较)
  59. function checkDate(obj){
  60. var obj_value=obj.replace(/-/g,"/");//替换字符,变成标准格式(检验格式为:'2009-12-10')
  61. // var obj_value=obj.replace("-","/");//替换字符,变成标准格式(检验格式为:'2010-12-10 11:12')
  62. var date1=new Date(Date.parse(obj_value));
  63. var date2=new Date();//取今天的日期
  64. if(date1>date2){
  65. //alert("不能大于当前时间!");
  66. return false;
  67. }
  68. return true;
  69. }
  70. /*
  71. 检查输入对象的值是否符合E-Mail格式
  72. 输入:str 输入的字符串
  73. 返回:如果通过验证返回true,否则返回false
  74. */
  75. function isEmail(str) {
  76. var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
  77. if (myReg.test(str))
  78. return true;
  79. return false;
  80. }
  81. /*//屏蔽指定关键字
  82. function shieldKeywords(obj) {
  83. if((obj.indexOf ("***") == 0)||(obj.indexOf ("****") == 0)){
  84. alert("屏蔽关键字(这里屏蔽***和****)!");
  85. return false;
  86. }
  87. return true;
  88. } */
  89. /*
  90. 检查输入手机号码是否正确
  91. 输入:
  92. s:字符串
  93. 返回:
  94. 如果通过验证返回true,否则返回false
  95. */
  96. function checkMobile(s) {
  97. var regu = /^[1][0-9][0-9]{9}$/;
  98. var re = new RegExp(regu);
  99. if (re.test(s)) {
  100. return true;
  101. } else {
  102. return false;
  103. }
  104. }
  105. /*
  106. 检查输入字符串是否是数字
  107. 输入:
  108. str:字符串
  109. 返回:
  110. 如果通过验证返回true,否则返回false
  111. */
  112. function isNumber(str)
  113. {
  114. var reg = /^\d+$/;
  115. if (reg.test(str))
  116. return true;
  117. else
  118. return false;
  119. }
  120. /*
  121. 检查输入字符串是否符合正整数格式
  122. 输入:
  123. s:字符串
  124. 返回:
  125. 如果通过验证返回true,否则返回false
  126. */
  127. function isPositiveNumber(s){
  128. var regu = "^[0-9]+$";
  129. var re = new RegExp(regu);
  130. if (s.search(re) != -1) {
  131. return true;
  132. } else {
  133. return false;
  134. }
  135. }
  136. /* 检查输入字符串是否符合国内固话或者传真格式
  137. 输入: s:字符串 格式例如:020-87110252/0431-87110252
  138. 返回: 如果通过验证返回true,否则返回false */
  139. function isTelephone(s){
  140. var reg=/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
  141. if(!reg.test(s))
  142. return false;
  143. return true ;
  144. }
  145. /*检查输入字符串是否符合身份证格式
  146. 输入: s:字符串
  147. 返回: 如果通过验证返回true,否则返回false */
  148. function isIDCard(strIDno) {
  149. var aCity={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:"国外"};
  150. var iSum = 0;
  151. //var info = "";
  152. var sBirthday="";
  153. //var strIDno = obj.value;
  154. var idCardLength = strIDno.length;
  155. if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno)){
  156. //alert("非法身份证号");
  157. return false;
  158. }
  159. //在后面的运算中x相当于数字10,所以转换成a
  160. strIDno = strIDno.replace(/x$/i,"a");
  161. if(aCity[parseInt(strIDno.substr(0,2))]==null){
  162. //alert("非法地区");
  163. return false;
  164. }
  165. if (idCardLength==18){
  166. sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2));
  167. var d = new Date(sBirthday.replace(/-/g,"/"));
  168. if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())){
  169. //alert("非法生日");
  170. return false;
  171. }
  172. for(var i = 17;i>=0;i --)
  173. iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11);
  174. if(iSum%11!=1){
  175. //alert("非法身份证号");
  176. return false;
  177. }
  178. } else if (idCardLength==15){
  179. sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2));
  180. var d = new Date(sBirthday.replace(/-/g,"/"));
  181. var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();
  182. if(sBirthday != dd){
  183. //alert("非法生日");
  184. return false;
  185. }
  186. }
  187. return true;
  188. }
  189. /*
  190. 校验ip地址的格式
  191. 输入:strIP:ip地址
  192. 返回:如果通过验证返回true,否则返回false;
  193. */
  194. function isIP(strIP) {
  195. if (isNull(strIP)) return false;
  196. var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g ;//匹配IP地址的正则表达式
  197. if (re.test(strIP)) {
  198. if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256) return true;
  199. }
  200. return false;
  201. }
  202. /* 检查开始日期是否小于等于结束日期
  203. 输入: s:字符串 开始日期 格式:2014-3-23
  204. e:字符串 结束日期 格式:2014-3-25
  205. 返回: 如果通过开始日期小于等于结束日期返回true,否则返回false */
  206. function date_compare(s,e) {
  207. var arr=s.split("-");
  208. var starttime=new Date(arr[0],arr[1],arr[2]);
  209. var starttimes=starttime.getTime();
  210. var arrs=e.split("-");
  211. var endtime=new Date(arrs[0],arrs[1],arrs[2]);
  212. var endtimes=endtime.getTime();
  213. if(starttimes>=endtimes){
  214. //alert('开始时间大于离开时间,请检查');
  215. return false;
  216. } else{
  217. return true;
  218. }
  219. }
  220. /* 检查输入字符串是否只由汉字组成
  221. 输入: s:字符串
  222. 返回: 如果通过验证返回true,否则返回false */
  223. function isChinese(str){
  224. var reg = /^[\u4e00-\u9fa5]+$/;
  225. if (reg.test(str))
  226. return true;
  227. return false;
  228. }
  229. /*
  230. 检查输入字符串是否符合金额格式
  231. 格式定义为带小数的正数,小数点后最多两位
  232. 输入:
  233. s:字符串
  234. 返回:
  235. 如果通过验证返回true,否则返回false
  236. */
  237. function isMoney(s) {
  238. var regu = "^[0-9]+[\.][0-9]{0,2}$";
  239. var re = new RegExp(regu);
  240. if (re.test(s)) {
  241. return true;
  242. } else {
  243. return false;
  244. }
  245. }
  246. /*
  247. 用途:检查输入对象的值是否符合端口号格式
  248. 输入:str 输入的字符串
  249. 返回:如果通过验证返回true,否则返回false
  250. */
  251. function isPort(str) {
  252. return (isNumber(str) && str < 65536);
  253. }
  254. //对电子邮件的验证
  255. function checkEmail(obj){
  256. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  257. if(!myreg.test(obj)){
  258. //alert('请输入有效的邮箱!');
  259. return false;
  260. }
  261. return true;
  262. }
  263. /*
  264. 用途:字符1是包含字符串2
  265. 输入:str1:字符串;str2:被包含的字符串
  266. 返回:如果通过验证返回true,否则返回false
  267. */
  268. function isMatch(str1, str2) {
  269. var index = str1.indexOf(str2);
  270. if (index == -1)
  271. return false;
  272. return true;
  273. }
  274. /**
  275. * add by hongpeng_dong 2007.05.12
  276. * 验证金额,成绩等可以带小数点数字的格式
  277. * @param str(要验证的字符串) num1(整数部分允许的最大长度) num2(小数点后允许的最大长度)
  278. * num1 num2 要求均为大于0的正整数 否则直接返回false
  279. * @return 格式正确true 不正确false
  280. * (正确格式可以为不含小数点的正整数,长度最大为传入的数值;如果str为空,返回true)
  281. */
  282. function validateResult(str,num1,num2){
  283. if('' == trim(str))
  284. return true;
  285. if(num1 ==0 || num2 == 0)
  286. return false;
  287. var v1 = '';
  288. var v2 = '';
  289. if(num1 != 1)
  290. v1=',' + num1;
  291. if(num2 != 1)
  292. v2 = ','+num2;
  293. var re = new RegExp('\(^[0-9]{1'+v1+'}\\.[0-9]{1'+v2+'}$)|(^[0-9]{1'+v1+'}$)');
  294. return re.test(str);
  295. }
  296. function LTrim(str)
  297. {
  298. var whitespace = new String(" \t\n\r");
  299. var s = new String(str);
  300. if (whitespace.indexOf(s.charAt(0)) != -1)
  301. {
  302. var j=0, i = s.length;
  303. while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
  304. {
  305. j++;
  306. }
  307. s = s.substring(j, i);
  308. }
  309. return s;
  310. }
  311. function RTrim(str)
  312. {
  313. var whitespace = new String(" \t\n\r");
  314. var s = new String(str);
  315. if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
  316. {
  317. var i = s.length - 1;
  318. while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
  319. {
  320. i--;
  321. }
  322. s = s.substring(0, i+1);
  323. }
  324. return s;
  325. }
  326. function trim(str)
  327. {
  328. return RTrim(LTrim(str));
  329. }
  330. function nullToEmptyStr(str) {
  331. if (str == null){
  332. return "";
  333. }else{
  334. return str;
  335. }
  336. }