常用的js表单验证方法大全

  1. /*
  2. 非空校验 : isNull()
  3. 是否是数字: isNumber(field)
  4. trim函数: trim() lTrim() rTrim()
  5. 校验字符串是否为空: checkIsNotEmpty(str)
  6. 校验字符串是否为整型: checkIsInteger(str)
  7. 校验整型最小值: checkIntegerMinValue(str,val)
  8. 校验整型最大值: checkIntegerMaxValue(str,val)
  9. 校验整型是否为非负数: isNotNegativeInteger(str)
  10. 校验字符串是否为浮点型: checkIsDouble(str)
  11. 校验字符串是否为日期型: checkIsValidDate(str)
  12. 校验两个日期的先后: checkDateEarlier(strStart,strEnd)
  13. 校验字符串是否为email型: checkEmail(str)
  14. 校验字符串是否为中文: checkIsChinese(str)
  15. 计算字符串的长度,一个汉字两个字符: fucCheckLength()
  16. 判断下拉列表框是否取值: getComboValue(field)
  17. 校验电话号(传真号) validateTel(str)
  18. 校验手机号 validateMonoTel(str)
  19. 校验字符串由字母,数字或两者组合而成 checkIsStrNum(str)
  20. 验证字符串是否只由字母组合而成 checkIsChar(str)
  21. 验证金额,成绩等可以带小数点数字的格式 validateResult(str,num1,num2)
  22. 计算两个日期之间的差值 dateDiff(interval, date1, date2)
  23. 验证是否为,或最大长度中文两个符 isNotNull(arg1,arg2,arg3)
  24. 验证输入值是否是月份 isMonth(validateMonth)
  25. 验证输入值是否是年份 isYear(validateYear)
  26. --------------------------------------------------------------------
  27. 验证小数和负数 chknbr(num,opt1,opt2)
  28. //opt1 小数 opt2 负数
  29. //当opt1为1时检查num是否是小数
  30. //当opt2为1时检查num是否是负数
  31. //返回true是正确的,false是错误的
  32. --------------------------------------------------------------------
  33. 四舍五入函数: round(input,exact)//input 数值 exact 精确的位数
  34. 得到文件的后缀名: getFilePostfix(oFile)
  35. */
  36.  
  37. //=================================================================
  38. //function:isNull()
  39. //非空校验
  40. //==================================================================
  41. function isNull(aForm,fieldArray)
  42. {
  43. if (confirm("您确认要进行此操作吗?"))
  44. {
  45. for (var i=0;i<(aForm.elements.length);i++)
  46. {
  47. var el=aForm.elements[i];
  48. for(var j=1;j<=fieldArray.length;j++)
  49. {
  50. if (el.name==fieldArray[j])
  51. {
  52.  
  53. if(trim(el.value)=="")
  54. {
  55.  
  56. setMessage("焦点处的值不能为空:"+fieldArray[j]+"!");
  57. el.focus();
  58. return true;
  59. }
  60. }
  61. }
  62. }
  63. return false;
  64. }
  65. else
  66. {
  67. return true;
  68. }
  69. }
  70.  
  71. //==================================================================
  72. // function isNumber(field)
  73. // 判断input text 的是否是数字.
  74. // return: true or false field为空返回false
  75. //==================================================================
  76.  
  77. function isNumber(field){
  78. //var re = new RegExp(/^\d+.*$/);
  79. var re = /^\d+(?=\.{0,1}\d+$|$)/;
  80. return re.test(trim(field.value));
  81. }
  82.  
  83. function LTrim(str)
  84. {
  85. var whitespace = new String(" \t\n\r");
  86. var s = new String(str);
  87. if (whitespace.indexOf(s.charAt(0)) != -1)
  88. {
  89. var j=0, i = s.length;
  90. while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
  91. {
  92. j++;
  93. }
  94. s = s.substring(j, i);
  95. }
  96. return s;
  97. }
  98. function RTrim(str)
  99. {
  100. var whitespace = new String(" \t\n\r");
  101. var s = new String(str);
  102. if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
  103. {
  104. var i = s.length - 1;
  105. while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
  106. {
  107. i--;
  108. }
  109. s = s.substring(0, i+1);
  110. }
  111. return s;
  112. }
  113. function trim(str)
  114. {
  115. return RTrim(LTrim(str));
  116. }
  117.  
  118. /********************************** Empty **************************************/
  119. /**
  120. *校验字符串是否为空
  121. *返回值:
  122. *如果不为空,定义校验通过,返回true
  123. *如果为空,校验不通过,返回false 参考提示信息:输入域不能为空!
  124. */
  125. function checkIsNotEmpty(str)
  126. {
  127. if(trim(str)== "")
  128. return false;
  129. else
  130. return true;
  131. }
  132. /*--------------------------------- Empty --------------------------------------*/
  133. /********************************** Integer *************************************/
  134. /**
  135. *校验字符串是否为整型
  136. *返回值:
  137. *如果为空,定义校验通过, 返回true
  138. *如果字串全部为数字,校验通过,返回true
  139. *如果校验不通过, 返回false 参考提示信息:输入域必须为数字!
  140. */
  141. function checkIsInteger(str)
  142. {
  143. //如果为空,不通过校验
  144. if(trim(str) == "")
  145. return false;
  146. var strr=trim(str);
  147. if(new RegExp(/^(\d+)$/).test(strr))
  148. return true;
  149. else
  150. return false;
  151. }//~~~
  152. /**
  153. *校验整型最小值
  154. *str:要校验的串。 val:比较的值
  155. *
  156. *返回值:
  157. *如果为空,定义校验通过, 返回true
  158. *如果满足条件,大于等于给定值,校验通过,返回true
  159. *如果小于给定值, 返回false 参考提示信息:输入域不能小于给定值!
  160. */
  161. function checkIntegerMinValue(str,val)
  162. {
  163. //如果为空,则通过校验
  164. if(str == "")
  165. return true;
  166. if(typeof(val) != "string")
  167. val = val + "";
  168. if(checkIsInteger(str) == true)
  169. {
  170. if(parseInt(str,10)>=parseInt(val,10))
  171. return true;
  172. else
  173. return false;
  174. }
  175. else
  176. return false;
  177. }//~~~
  178. /**
  179. *校验整型最大值
  180. *str:要校验的串。 val:比较的值
  181. *
  182. *返回值:
  183. *如果为空,定义校验通过, 返回true
  184. *如果满足条件,小于等于给定值,校验通过,返回true
  185. *如果大于给定值, 返回false 参考提示信息:输入值不能大于给定值!
  186. */
  187. function checkIntegerMaxValue(str,val)
  188. {
  189. //如果为空,则通过校验
  190. if(str == "")
  191. return true;
  192. if(typeof(val) != "string")
  193. val = val + "";
  194. if(checkIsInteger(str) == true)
  195. {
  196. if(parseInt(str,10)<=parseInt(val,10))
  197. return true;
  198. else
  199. return false;
  200. }
  201. else
  202. return false;
  203. }//~~~
  204. /**
  205. *校验整型是否为非负数
  206. *str:要校验的串。
  207. *
  208. *返回值:
  209. *如果为空,定义校验通过,返回true
  210. *如果非负数, 返回true
  211. *如果是负数, 返回false 参考提示信息:输入值不能是负数!
  212. */
  213. function isNotNegativeInteger(str)
  214. {
  215. //如果为空,则通过校验
  216. if(str == "")
  217. return true;
  218. if(checkIsInteger(str) == true)
  219. {
  220. if(parseInt(str,10) < 0)
  221. return false;
  222. else
  223. return true;
  224. }
  225. else
  226. return false;
  227. }//~~~
  228. /*--------------------------------- Integer --------------------------------------*/
  229. /********************************** Double ****************************************/
  230. /**
  231. *校验字符串是否为浮点型
  232. *返回值:
  233. *如果为空,定义校验通过, 返回true
  234. *如果字串为浮点型,校验通过, 返回true
  235. *如果校验不通过, 返回false 参考提示信息:输入域不是合法的浮点数!
  236. */
  237. function checkIsDouble(str)
  238. {
  239. //如果为空,则通过校验
  240. if(trim(str) == "")
  241. return true;
  242. //如果是整数,则校验整数的有效性
  243. if(str.indexOf(".") == -1)
  244. {
  245. if(checkIsInteger(str) == true)
  246. return true;
  247. else
  248. return false;
  249. }
  250. else
  251. {
  252. if(new RegExp(/^(\-?)(\d+)(.{1})(\d+)$/g).test(trim(str)))
  253. return true;
  254. else
  255. return false;
  256. }
  257. }//~~~
  258.  
  259. /*--------------------------------- Double ---------------------------------------*/
  260. /********************************** date ******************************************/
  261. /**
  262. *校验字符串是否为日期型
  263. *返回值:
  264. *如果为空,定义校验通过, 返回false
  265. *如果字串为日期型,校验通过, 返回true
  266. *如果日期不合法, 返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
  267. */
  268. function checkIsValidDate(str)
  269. {
  270. //如果为空,则通过校验
  271. if(trim(str) == "")
  272. return false;
  273. var pattern = new RegExp(/^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g);
  274. if(!pattern.test(str))
  275. return false;
  276. var arrDate = str.split("-");
  277. if(parseInt(arrDate[0],10) < 100)
  278. arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
  279. var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
  280. // date.getYear() == arrDate[0]
  281. // &&
  282. if( date.getMonth() == (parseInt(arrDate[1],10) -1)+""
  283. && date.getDate() == arrDate[2])
  284. return true;
  285. else
  286. return false;
  287. }
  288. /**
  289. *校验字符串是否为日期型 YYYY-MM-DD
  290. *返回值:
  291. *如果为空,定义校验通过, 返回true
  292. *如果字串为日期型,校验通过, 返回true
  293. *如果日期不合法, 返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
  294. */
  295. function isDate(str)
  296. {
  297. //如果为空,则通过校验
  298. if((null != str && "null" != str) && "" == str)
  299. return true;
  300. //校验日期 格式为YYYY-MM-DD
  301. var pattern = new RegExp(/^(\d{4})-(\d{1,2})-(\d{1,2})$/g);
  302. if(!pattern.test(str))
  303. return false;
  304. var arrDate = str.split("-");
  305. var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
  306. if( date.getMonth() == (parseInt(arrDate[1],10) -1)+""
  307. && date.getDate() == arrDate[2])
  308. return true;
  309. else
  310. return false;
  311. }
  312.  
  313. function isYearValidate(str)
  314. {
  315.  
  316. if('' == str){
  317. return true;
  318. }else{
  319. var pattern = new RegExp(/^(\d{4})$/g);
  320. if(!pattern.test(str)){
  321. return false;
  322. }
  323. return true;
  324. }
  325. return false;
  326. }
  327. /*
  328. function checkIsValidDate(aForms,fieldArray)
  329. {
  330. //如果为空,则通过校验
  331. for (var i=0;i<(aForms.elements.length);i++)
  332. {
  333. var el=aForms.elements[i];
  334. for(var j=0;j<fieldArray.length;j++)
  335. {
  336. if (el.name==fieldArray[j])
  337. {
  338. if(el.value =="")
  339. {
  340. return true;
  341. }
  342. else
  343. {
  344. var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
  345. if(!pattern.test(el.value))
  346. return false;
  347. var arrDate = el.value.split("-");
  348. if(parseInt(arrDate[0],10) < 100)
  349. arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
  350. var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
  351. if(date.getYear() == arrDate[0]
  352. && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
  353. && date.getDate() == arrDate[2])
  354. return true;
  355. else
  356. return false;
  357. }
  358. }
  359. }
  360. }
  361.  
  362. }*/
  363. //~~~
  364. /**
  365. *校验两个日期的先后
  366. *返回值:
  367. *如果其中有一个日期为空,校验通过, 返回true
  368. *如果起始日期早于等于终止日期,校验通过, 返回true
  369. *如果起始日期晚于终止日期, 返回false 参考提示信息: 起始日期不能晚于结束日期。
  370. */
  371. function checkDateEarlier(strStart,strEnd)
  372. {
  373. if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
  374. return false;
  375. //如果有一个输入为空,则通过检验
  376. if (( strStart == "" ) || ( strEnd == "" ))
  377. return true;
  378. var arr1 = strStart.split("-");
  379. var arr2 = strEnd.split("-");
  380. var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
  381. var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
  382. if(arr1[1].length == 1)
  383. arr1[1] = "0" + arr1[1];
  384. if(arr1[2].length == 1)
  385. arr1[2] = "0" + arr1[2];
  386. if(arr2[1].length == 1)
  387. arr2[1] = "0" + arr2[1];
  388. if(arr2[2].length == 1)
  389. arr2[2]="0" + arr2[2];
  390. var d1 = arr1[0] + arr1[1] + arr1[2];
  391. var d2 = arr2[0] + arr2[1] + arr2[2];
  392. if(parseInt(d1,10) > parseInt(d2,10))
  393. return false;
  394. else
  395. return true;
  396. }
  397. //~~~
  398. /*--------------------------------- date -----------------------------------------*/
  399. /********************************** email *****************************************/
  400. /**
  401. *校验字符串是否为email型
  402. *返回值:
  403. *如果为空,定义校验通过, 返回true
  404. *如果字串为email型,校验通过, 返回true
  405. *如果email不合法, 返回false 参考提示信息:Email的格式不正確!
  406. */
  407. function checkEmail(str)
  408. {
  409. //如果为空,则通过校验
  410. if(trim(str) == "")
  411. return true;
  412. if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
  413. || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
  414. return false;
  415. else
  416. return true;
  417. }//~~~
  418. /*--------------------------------- email ----------------------------------------*/
  419. /********************************** chinese ***************************************/
  420. /**
  421. *校验字符串是否为中文
  422. *返回值:
  423. *如果为空,定义校验通过, 返回true
  424. *如果字串为中文,校验通过, 返回true
  425. *如果字串为非中文, 返回false 参考提示信息:必须为中文!
  426. */
  427. function checkIsChinese(str)
  428. {
  429. //如果值为空,通过校验
  430. if (str == "")
  431. return true;
  432. var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
  433. if (pattern.test(str))
  434. return true;
  435. else
  436. return false;
  437. }
  438.  
  439. //判断下拉列表框是否取值
  440. function getComboValue(field)
  441. {
  442. if (document.getElementById(field).value=="")
  443. {
  444. setMessage('请选择');
  445. document.forms[0].field.focus();
  446. return;
  447. }
  448. }
  449. //是否为有效年
  450. function isYear(aForm,field)
  451. {
  452. for (var i=0;i<(aForm.elements.length);i++)
  453. {
  454. var el=aForm.elements[i];
  455. if (el.name==field)
  456. {
  457. if (document.getElementById(field).value>=1900 && document.getElementById(field).value<=2053)
  458. {
  459.  
  460. }
  461. else
  462. {
  463. //setMessage('当前年份无效!');
  464. //aForm.field.focus();
  465. return false;
  466. }
  467. }
  468.  
  469. }
  470. return true;
  471. }
  472. function JHshNumberText()
  473. {
  474. if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
  475. || (window.event.keyCode == 13) || (window.event.keyCode == 46)
  476. || (window.event.keyCode == 45)))
  477. {
  478. window.event.keyCode = 0 ;
  479. }
  480. }
  481.  
  482. //函数名:fucCheckLength
  483. //功能介绍:检查字符串的长度
  484. //参数说明:要检查的字符串
  485. //返回值:长度值
  486.  
  487. function fucCheckLength(strTemp)
  488. {
  489. var i,sum;
  490. sum=0;
  491. for(i=0;i<strTemp.length;i++)
  492. {
  493. if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
  494. sum=sum+1;
  495. else
  496. sum=sum+2;
  497. }
  498. return sum;
  499. }
  500. //add by hongxin_ma
  501. //opt1 小数 opt2 负数
  502. //当opt1为1时检查num是否是小数
  503. //当opt2为1时检查num是否是负数
  504. //返回true是正确的,false是错误的
  505. function chknbr(num,opt1,opt2)
  506. {
  507. //第一个字符为"." 返回false
  508. if(num.charAt(0)=='.')return false;
  509. var i=num.length;
  510. var staus;
  511. //staus用于记录.的个数
  512. status=0;
  513. if ((opt2!=1) && (num.charAt(0)=='-'))
  514. {
  515. //setMessage("You have enter a invalid number.");
  516. return false;
  517. }
  518. //当最后一位为.时出错
  519. if (num.charAt(i-1)=='.')
  520. {
  521. //setMessage("You have enter a invalid number.");
  522. return false;
  523. }
  524.  
  525. for (j=0;j<num.length ; j++){
  526. if (num.charAt(j)=='.')
  527. {
  528. status++;
  529. }
  530. if (status>1)
  531. {
  532. //setMessage("You have enter a invalid number.");
  533. return false;
  534. }
  535. if (num.charAt(j)<'0' || num.charAt(j)>'9' )
  536. {
  537. if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0))
  538. {
  539. //setMessage("You have enter a invalid number.");
  540. return false;
  541. }
  542. }
  543. }
  544. return true;
  545. }
  546. /*
  547. *add by hongxin_ma四舍五入函数
  548. *@param input 输入的原值
  549. *@param exact 精确的位数
  550. */
  551. function round(input,exact){
  552. if(exact==0){
  553. if(new RegExp(/^\d+.*$/).test(input))
  554. {
  555. input=parseFloat(input)+0.5;
  556. return parseInt(input,'10');
  557. }else if(new RegExp(/^\-\d+.*$/).test(input)){
  558. input=parseFloat(input)-0.5;
  559. return parseInt(input,'10');
  560. }
  561. else
  562. {
  563. return input
  564. };
  565. }
  566. var substract = '0.';
  567. var result = '';
  568. for(var i=0;i<exact;i++){
  569. substract+='0';
  570. }
  571. substract+='5';
  572. try{
  573. if(parseFloat(input)>0)
  574. {
  575. result = parseFloat(input)+parseFloat(substract);
  576. }else
  577. {
  578. result = parseFloat(input)-parseFloat(substract);
  579. }
  580. result = result.toString();
  581. var end = parseInt(result.indexOf("."),"10")+parseInt(exact,"10")+1;
  582. result = result.substring(0,end);
  583. }catch(e){
  584. return result;
  585. }
  586. if(result==-0)
  587. {
  588. result = Math.abs(result);
  589. }
  590. return result;
  591. }
  592.  
  593. /**
  594. * add by hongpeng_dong 2007.05.11
  595. * 验证字符串是否是电话号码,传真
  596. * 区号为3-4位 可以不写 区号后可以带一个-号,号码为3-8位)
  597. * 允许空值
  598. * @param 字符串
  599. * @return 合理true 否则为false 空返回true
  600. */
  601. function validateTel(str){
  602. if('' == trim(str))
  603. return true;
  604. var pattern = new RegExp(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/);
  605. return pattern.exec(str);
  606. }
  607. /**
  608. * add by hongpeng_dong 2007.12.11
  609. * 验证字符串是否是电话号码,传真
  610. * 格式为 区号(3-4位)-号码(3-8位) 如:0431-85667788
  611. * 允许空值
  612. * @param 字符串
  613. * @return 合理true 否则为false 空返回true
  614. */
  615. function validateTelToo(str){
  616. if('' == trim(str))
  617. return true;
  618. var pattern = new RegExp(/^[0-9]{3,4}\-[0-9]{3,8}$/);
  619. return pattern.exec(str);
  620. }
  621.  
  622. /**
  623. * add by hongpeng_dong 2007.05.11
  624. * 验证字符串是否是手机号 (必须以1打头 前面可以加0 其它为10位)
  625. * 允许空值
  626. * @param 字符串
  627. * @return 合理true 否则为false 空返回true
  628. */
  629. function validateMonoTel(str){
  630. if('' == trim(str))
  631. return true;
  632. var pattern = new RegExp(/^0{0,1}1[0-9]{10}$/);
  633. return pattern.test(str);
  634. }
  635.  
  636. /**
  637. * add by hongpeng_dong 2007.04.03
  638. * 验证字符串是否只由字母,数字或两者组合而成
  639. * @param 字符串
  640. * @return 是true 非false
  641. */
  642. function checkIsStrNum(str){
  643. if(new RegExp(/^[a-zA-Z0-9]*$/g).test(str)){
  644. return true;
  645. }
  646. return false;
  647. }
  648.  
  649. /**
  650. * add by chun_chang 2007.05.15
  651. * 验证字符串是否只由字母组合而成
  652. * @param 字符串
  653. * @return 是true 非false
  654. */
  655. function checkIsChar(str){
  656. if(new RegExp(/^[a-zA-Z]*$/g).test(str)){
  657. return true;
  658. }
  659. return false;
  660. }
  661.  
  662. /**
  663. * add by hongpeng_dong 2007.05.12
  664. * 验证金额,成绩等可以带小数点数字的格式
  665. * @param str(要验证的字符串) num1(整数部分允许的最大长度) num2(小数点后允许的最大长度)
  666. * num1 num2 要求均为大于0的正整数 否则直接返回false
  667. * @return 格式正确true 不正确false
  668. * (正确格式可以为不含小数点的正整数,长度最大为传入的数值;如果str为空,返回true)
  669. */
  670. function validateResult(str,num1,num2){
  671. if('' == trim(str))
  672. return true;
  673. if(num1 ==0 || num2 == 0)
  674. return false;
  675. var v1 = '';
  676. var v2 = '';
  677. if(num1 != 1)
  678. v1=',' + num1;
  679. if(num2 != 1)
  680. v2 = ','+num2;
  681. var re = new RegExp('\(^[0-9]{1'+v1+'}\\.[0-9]{1'+v2+'}$)|(^[0-9]{1'+v1+'}$)');
  682. return re.test(str);
  683. }
  684.  
  685. /**
  686. * 计算两个日期之间的差值
  687. * 使用方法:(eg): alert(dateDiff('h', '2007-4-14', '2007-4-19'));
  688. * h 表示 HOUR, D 表示 day, M 表示 minute, s 表示 second
  689. */
  690. function dateDiff(interval, date1, date2)
  691. {
  692. var objInterval = {'D' : 1000 * 60 * 60 * 24, 'H' : 1000 * 60 * 60, 'M' : 1000 * 60, 'S' : 1000};
  693. interval = interval.toUpperCase();
  694. var dt1 = Date.parse(date1.replace(/-/g, '/'));
  695. var dt2 = Date.parse(date2.replace(/-/g, '/'));
  696. try
  697. {
  698. return Math.round((dt2 - dt1) / eval('(objInterval.' + interval + ')'));
  699. }
  700. catch (e)
  701. {
  702. return e.message;
  703. }
  704. dt1 = null;
  705. dt2 = null;
  706. objInterval = null;
  707. }
  708.  
  709. /*
  710. add by sihua_yao
  711. 校验网站url
  712. 只允许输入http:// https://的
  713. 参数 :url 为对象
  714. */
  715. function checkWebUrl(url)
  716. {
  717. if(url.value==""||url.value=="http://"||url.value=="https://")
  718. {
  719. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  720. return false;
  721. }
  722.  
  723. if(url.value.length<8)
  724. {
  725. setMessage("请填写正确的网址!如http://www.ideal.com!");
  726. //url.focus();
  727. return false;
  728. }
  729.  
  730. if ( url.value.substring(0, 7)!="http://" && url.value.substring(0, 8)!="https://" )
  731. {
  732. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  733. return false;
  734. }
  735.  
  736. if(url.value.substring(0, 7)=="http://")
  737. {
  738. var s="";
  739.  
  740. s=url.value.substring(7,url.value.length);
  741.  
  742. var a=s.indexOf(".", 0);
  743.  
  744. if(a=="-1")
  745. {
  746. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  747. //url.focus();
  748. return false;
  749. }
  750.  
  751. var s1=s.substring(a+1,s.length)
  752. var b=s1.indexOf(".", 0);
  753.  
  754. if(b=="-1")
  755. {
  756. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  757. //url.focus();
  758. return false;
  759. }
  760.  
  761. return true;
  762. }
  763.  
  764. if(url.value.substring(0, 8)=="https://")
  765. {
  766. var s="";
  767. s=url.value.substring(8,url.value.length);
  768. var a=s.indexOf(".", 0);
  769.  
  770. if(a=="-1")
  771. {
  772. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  773. //url.focus();
  774. return false;
  775. }
  776.  
  777. var s1=s.substring(a+1,s.length)
  778. var b=s1.indexOf(".", 0);
  779.  
  780. if(b=="-1")
  781. {
  782. setMessage ("请填写正确的网址!如http://www.ideal.com!");
  783. //url.focus();
  784. return false;
  785. }
  786. return true;
  787. }
  788. }
  789.  
  790. /**
  791. * added by hongpeng_dong 2007.11.21
  792. * 得到文件的后缀名
  793. * oFile为file控件对象
  794. */
  795. function getFilePostfix(oFile)
  796. {
  797. if(oFile == null)
  798. return null;
  799. var pattern = /(.*).(.*)$/gi;
  800. if(typeof(oFile) == "object")
  801. {
  802. if(oFile.value == null || oFile.value == "")
  803. return null;
  804. var arr = pattern.exec(oFile.value);
  805. return RegExp.$2;
  806. }
  807. else if(typeof(oFile) == "string")
  808. {
  809. var arr = pattern.exec(oFile);
  810. return RegExp.$2;
  811. }
  812. else
  813. return null;
  814. }
  815. /**
  816. * add by wei_liu at 2007-02-3
  817. * 验证是否为空
  818. * arg1为验证的文档的id
  819. * arg2为验证的文档名称
  820. * aarg3文档的最大长度,可以不用验证,只需传递两个前个就可以
  821. * example funcion aa(){
  822. * if(!isNotNull('voteTitle',"标题",20)){return ;}
  823. * 其它操作other action
  824. * }
  825. * 也可以不用验证长度
  826. * example function aa(){
  827. * if(!isNotNull('voteTitle',"标题")){return ;}
  828. * }
  829. * ***********************验证通过返回true
  830. */
  831. function isNotNull(arg1,arg2,arg3)
  832. {
  833. if(document.getElementById(arg1)){
  834. if(trim(document.getElementById(arg1).value) =='')
  835. {
  836. setMessage('请填写'+arg2+'!');
  837. return false;
  838. }
  839. if(arg3 !='' && typeof(arg3)!='' && arg3 !=null && arg3 != 'undefined')
  840. {
  841. if(!maxLongById(arg1,arg3,arg2)){return false;}
  842. }
  843. return true;
  844. }else{
  845. setMessage('你要验证的字段不存在或ID重复定义');
  846. return false;
  847. }
  848. }
  849. /**
  850. * add by wei_liu at 2007-02-3
  851. * 验证长度
  852. * arg1为验证的文档的id
  853. * arg2文档的最大长度
  854. * arg3为验证的文档名称
  855. * ***********************验证通过返回true
  856. */
  857. function maxLongById(arg1,arg2,arg3)
  858. //str.replace(/[^\x00-\xff]/g,"**").length
  859. {
  860. if(document.getElementById(arg1)){
  861. var str =document.getElementById(arg1).value;
  862. var mLength =str.replace(/[^\x00-\xff]/g,"**").length;
  863. if(mLength>arg2)
  864. {
  865. setMessage(arg3+'不能超过'+arg2+'个字符或'+(arg2/2)+'个汉字!');
  866. return false;
  867. }
  868. return true;
  869. }else{
  870. setMessage('你要验证的字段不存在或ID重复定义');
  871. return false;
  872. }
  873. }
  874. /**
  875. * add by wei_liu at 2007-02-3
  876. * 验证是否为空
  877. * arg1为验证的文档的value
  878. * arg2为验证的文档名称
  879. * aarg3文档的最大长度,可以不用验证,只需传递两个前个就可以
  880. * example funcion aa(){
  881. * if(!isNotNull('voteTitle',"标题",20)){return ;}
  882. * 其它操作other action
  883. * }
  884. * 也可以不用验证长度
  885. * example function aa(){
  886. * if(!isNotNull('voteTitle',"标题")){return ;}
  887. * }
  888. * ***********************验证通过返回true
  889. */
  890. function isNotNullValue(arg1,arg2,arg3)
  891. {
  892.  
  893. if(trim(arg1) =='' || typeof(arg1)=='undefined')
  894. {
  895. setMessage('请填写'+arg2+'!');
  896. return false;
  897. }
  898. if(arg3 !='' && typeof(arg3)!='' && arg3 !=null &&arg3 != 'undefined')
  899. {
  900. if(!maxLongByValue(arg1,arg3,arg2)){return false;}
  901. }
  902. return true;
  903.  
  904. }
  905. /**
  906. * add by wei_liu at 2007-02-3
  907. * 验证长度
  908. * val1为验证的文档的value
  909. * val2文档的最大长度
  910. * val3为验证的文档名称
  911. * ***********************验证通过返回true
  912. */
  913. function maxLongByValue(val1,val2,val3){
  914. var mLength = val1.replace(/[^\x00-\xff]/g,"**").length;
  915. if(mLength>val2)
  916. {
  917. setMessage(val3+'不能超过'+val2+'个字符或'+(val2/2)+'个汉字!');
  918. return false;
  919. }
  920. return true;
  921. }
  922.  
  923. /**
  924. * added by hongpeng_dong 2008.3.11
  925. * 判断输入值是否是月份
  926. * param:validateMonth 要验证的值
  927. * 是true 否false
  928. */
  929. function isMonth(validateMonth){
  930. var pattern = new RegExp(/(^[0]{0,1}[1-9]$)|(^1[0-2]$)/);
  931. return pattern.test(validateMonth);
  932. }
  933.  
  934. /**
  935. * added by hongpeng_dong 2008.3.11
  936. * 判断输入值是否是年份
  937. * param:validateYear 要验证的值
  938. * 是true 否false
  939. */
  940. function isYear(validateYear){
  941. var pattern = new RegExp(/^[1-9][0-9]{3}$/);
  942. return pattern.test(validateYear);
  943. }

js表单验证工具包的更多相关文章

  1. JS表单验证-12个常用的JS表单验证

    JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...

  2. js 表单验证控制代码大全

    js表单验证控制代码大全 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长 ...

  3. jquery.validation.js 表单验证

    jquery.validation.js 表单验证   官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...

  4. Jquery.validate.js表单验证插件的使用

    作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...

  5. angular js 表单验证

    <!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...

  6. JS表单验证类HTML代码实例

    以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮 ...

  7. Js表单验证控件-02 Ajax验证

    在<Js表单验证控件(使用方便,无需编码)-01使用说明>中,写了Verify.js验证控件的基本用法,基本可以满足大多数验证需求,如果涉及服务端的验证,则可以通过Ajax. Ajax验证 ...

  8. jQuery.validate.js表单验证插件

    jQuery.validate.js表单验证插件的使用 效果: 代码: <!DOCTYPE html> <html lang="en"> <head& ...

  9. 一个漂亮的js表单验证页面+验证码

    一个漂亮的js表单验证页面 见图知其意, 主要特性 带密码安全系数的判断 其他的就没有啥啦 嘿嘿嘿 当然,其代码也在Github上 我也准备了一套可以直接Ctrl + v; Ctrl + c 运行的代 ...

随机推荐

  1. CentOS上安装oracle11g报错处理

    ​ 最近,在处理oracle gateway的报错问题.只因个人的测试环境已经迁移到docker上了,又懒得装一套环境就直接在机器上安装oracle11g.今天分享的故事就从此开始-- 运行环境 项目 ...

  2. u-boot、kernel、root系统烧写和挂载命令命令

    一.uboot 环境变量: 1. 打印环境变量:# print 2. 设置启动参数# set bootargs noinitrd init=/linuxrc console=ttySAC0,11520 ...

  3. Java学习笔记九:Java的循环跳转语句

    Java的循环跳转语句 一:Java循环跳转语句之break: 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 J ...

  4. Qt——菜单栏、工具栏、状态栏

    1.菜单栏 菜单栏的意义是将可点击触发最终事件的集中在一起,所以菜单栏中是QAction 添加菜单栏是QMainWindow的行为 QMenubar *menubar = this->addMe ...

  5. (长期更新)OI常用模板

    代码很简单的模板就不收录了. DFT 离散傅立叶变换 void dft(pdd *a,int l,bool r){ int i,j=l/2,k; for(i=1;i<l;++i){ if(i&l ...

  6. IDEA中SVN的使用

    文件红色:表示文件没有添加到服务器 绿色:表示没有更新新的修改到服务器 普通黑色:表示和服务器同步 1.如何让修改的文件的父文件也变成蓝色(未提交的状态) 2.其中的1.6 format 1.7 fo ...

  7. MySQL分区的限制(最多有多少个分区)

    MySQL分区的限制 •   只能对数据表的整型列进行分区,或者数据列可以通过分区函数转化成整型列 •   最大分区数目不能超过1024 •   如果含有唯一索引或者主键,则分区列必须包含在所有的唯一 ...

  8. git初始化仓库相关

    当我们需要新建一个git项目会遇到的问题 全局设置 git config --global user.name "名字" git config --global user.emai ...

  9. Django学习之天气调查实例(3):部署静态文件CSS、JS、images等(部署环境基于Ubuntu)

    在设计登录界面时,采用了网上下载的登录模板,漂亮,简易.但是在测试和部署时,发现原来模板中采用的js文件和css文件,却着实让我折腾了好几天. 在以往的网页设计中,一般只要把测试站点开启后,网页中的静 ...

  10. 用mapreduce读取hdfs数据到hbase上

    hdfs数据到hbase过程 将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 hbase先创建好表   cre ...