JavaScript validation library


/ Published in: JavaScript
Save to your folder(s)

a set of function useful to check data (functions name in italian but easy to translate).


Copy this code and paste it in your HTML
  1. // == Funzioni per la validazione dei formati =========================================================
  2. // function testNumericoIntPos(oggTextfield, boolObbligatorio)
  3. // function testNumerico(oggTextfield, boolObbligatorio)
  4. // function testDataAA(oggTextfield, boolObbligatorio)
  5. // function testDataAAAAstr(stri)
  6. // function testDataAAAA(oggTextfield, boolObbligatorio)
  7. // function testData(o,b,formato)
  8. // function testDataOra(o,b,formato)
  9. // function testDataGgMmAaaa(oggTextfield, boolObbligatorio)
  10. // function testDataGgMmAaaaHHii(oggTextfield, boolObbligatorio)
  11. // function testDataAaaaMmGg(oggTextfield, boolObbligatorio)
  12. // function testDataAaaaMmGgHHii(oggTextfield, boolObbligatorio)
  13. // function testUrl(oggTextfield, boolObbligatorio)
  14. // function testEmail(oggTextfield, boolObbligatorio)
  15. // function testRadio(oggRadio, boolObbligatorio)
  16. // function testRadioValue(oggRadio, boolObbligatorio, valore)
  17. // function testCheckbox(oggCheckbox, boolObbligatorio)
  18. // function testCAP(oggTextfield, boolObbligatorio)
  19. // function testCodiceFiscale(oggTextfield, boolObbligatorio)
  20. // function testAlfanumerico(oggTextfield, boolObbligatorio)
  21. // function testCampoTesto(oggTextfield, boolObbligatorio)
  22. // function testSerieDiCheckbox(oggCheckbox, boolObbligatorio)
  23. // function testCombobox(oggComboBox, boolObbligatorio)
  24. // function testComboboxMultiple(oggComboBox, boolObbligatorio)
  25. // function trim(str)
  26. // ====================================================================================================
  27.  
  28. //
  29. // ====================================================================================================
  30.  
  31. function testNumericoIntPos(oggTextfield, boolObbligatorio) {
  32. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  33.  
  34. if (oggTextfield.value == "")
  35. if (boolObbligatorio)
  36. return false
  37. else
  38. return true
  39.  
  40. var re = /^\d+$/
  41.  
  42. return(re.test(oggTextfield.value))
  43. }
  44.  
  45. function testNumerico(oggTextfield, boolObbligatorio) {
  46. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  47.  
  48. if (oggTextfield.value == "")
  49. if (boolObbligatorio)
  50. return false
  51. else
  52. return true
  53.  
  54. if (oggTextfield.value == "-")
  55. return false
  56.  
  57. // var re = /^\-?\d+\.?\d*$/ // accetta "-3243." , NON accetta ".9843" , NON accetta "-.9843"
  58. var re = /^\-?\d*(\,\d+)?$/ // NON accetta "-3243." , accetta ".9843", accetta "-.9843" (accetterebbe anche "-" ma l'ho già escluso)
  59.  
  60. return (re.test(oggTextfield.value))
  61. }
  62.  
  63. function testDataAA(oggTextfield, boolObbligatorio) {
  64. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  65.  
  66. if (oggTextfield.value == "")
  67. if (boolObbligatorio)
  68. return false
  69. else
  70. return true
  71.  
  72. // var re = /^(\d{2})\/(\d{2})\/\d{2}$/ // accetta solo 04/06/99 e non 4/6/99
  73. var re = /^(\d{1,2})\/(\d{1,2})\/(\d{2})$/ // accetta anche 4/6/99
  74.  
  75. if (!(re.test(oggTextfield.value)))
  76. return false
  77.  
  78. var arrMatches = re.exec(oggTextfield.value)
  79.  
  80. var giorno = parseInt(arrMatches[1],10)
  81. var mese = parseInt(arrMatches[2],10)
  82. var anno = parseInt(arrMatches[3],10)
  83.  
  84. if (mese < 1 || mese > 12)
  85. return false
  86.  
  87. var nGiorni
  88.  
  89. switch (mese) {
  90. case 4 : case 6 : case 9 : case 11 :
  91. nGiorni = 30
  92. break
  93. case 2 :
  94. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  95. nGiorni = 29
  96. else
  97. nGiorni = 28
  98. break
  99. default :
  100. nGiorni = 31
  101. }
  102.  
  103. if (giorno > nGiorni || giorno < 1)
  104. return false
  105. else {
  106. /*oggTextfield.value = (
  107. ( (giorno<10) ? '0' + giorno : giorno ) + '/' +
  108. ( (mese<10) ? '0' + mese : mese) + '/' +
  109. ( anno )
  110. )*/
  111.  
  112. return true
  113. }
  114. }
  115.  
  116. function testDataAAAAstr(stri) {
  117. stri = stri.replace(/\s+$|^\s+/g,"")
  118.  
  119. var re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ // accetta anche 4/6/1999
  120.  
  121. if (!(re.test(stri)))
  122. return false
  123.  
  124. var arrMatches = re.exec(stri)
  125.  
  126. var giorno = parseInt(arrMatches[1],10)
  127. var mese = parseInt(arrMatches[2],10)
  128. var anno = parseInt(arrMatches[3],10)
  129.  
  130. if (mese < 1 || mese > 12)
  131. return false
  132.  
  133. var nGiorni
  134.  
  135. switch (mese) {
  136. case 4 : case 6 : case 9 : case 11 :
  137. nGiorni = 30
  138. break
  139. case 2 :
  140. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  141. nGiorni = 29
  142. else
  143. nGiorni = 28
  144. break
  145. default :
  146. nGiorni = 31
  147. }
  148.  
  149. if (giorno > nGiorni || giorno < 1)
  150. return false
  151. else
  152. return true
  153. }
  154.  
  155. function testDataAAAA(oggTextfield, boolObbligatorio) {
  156. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  157.  
  158. if (oggTextfield.value == "")
  159. if (boolObbligatorio)
  160. return false
  161. else
  162. return true
  163.  
  164. // var re = /^(\d{2})\/(\d{2})\/\d{4}$/ // accetta solo 04/06/99 e non 4/6/1999
  165. var re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ // accetta anche 4/6/1999
  166.  
  167. if (!(re.test(oggTextfield.value)))
  168. return false
  169.  
  170. var arrMatches = re.exec(oggTextfield.value)
  171.  
  172. var giorno = parseInt(arrMatches[1],10)
  173. var mese = parseInt(arrMatches[2],10)
  174. var anno = parseInt(arrMatches[3],10)
  175.  
  176. if (mese < 1 || mese > 12)
  177. return false
  178.  
  179. var nGiorni
  180.  
  181. switch (mese) {
  182. case 4 : case 6 : case 9 : case 11 :
  183. nGiorni = 30
  184. break
  185. case 2 :
  186. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  187. nGiorni = 29
  188. else
  189. nGiorni = 28
  190. break
  191. default :
  192. nGiorni = 31
  193. }
  194.  
  195. if (giorno > nGiorni || giorno < 1)
  196. return false
  197. else
  198. return true
  199. }
  200.  
  201. function testData(o,b,formato) {
  202. if (formato=="gg-mm-aaaa")
  203. {
  204. return testDataGgMmAaaa(o,b);
  205. }
  206. if (formato=="aaaa-mm-gg")
  207. {
  208. return testDataAaaaMmGg(o,b);
  209. }
  210. return false;
  211. }
  212.  
  213. function testDataOra(o,b,formato) {
  214. if (formato=="gg-mm-aaaa")
  215. {
  216. return testDataGgMmAaaaHHii(o,b);
  217. }
  218. if (formato=="aaaa-mm-gg")
  219. {
  220. return testDataAaaaMmGgHHii(o,b);
  221. }
  222. return false;
  223. }
  224.  
  225. function testDataGgMmAaaa(oggTextfield, boolObbligatorio) {
  226. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  227.  
  228. if (oggTextfield.value == "")
  229. if (boolObbligatorio)
  230. return false
  231. else
  232. return true
  233.  
  234. var re = /^(\d{1,2})\-(\d{1,2})\-(\d{4})$/ // accetta anche 4-6-1999
  235.  
  236. if (!(re.test(oggTextfield.value)))
  237. return false
  238.  
  239. var arrMatches = re.exec(oggTextfield.value)
  240.  
  241. var giorno = parseInt(arrMatches[1],10)
  242. var mese = parseInt(arrMatches[2],10)
  243. var anno = parseInt(arrMatches[3],10)
  244.  
  245. //aggiunta la possibilità di mettere date con 0 nei mesi e nei giorni
  246. if (mese < 0 || mese > 12)
  247. return false
  248.  
  249. var nGiorni
  250.  
  251. switch (mese) {
  252. case 4 : case 6 : case 9 : case 11 :
  253. nGiorni = 30
  254. break
  255. case 2 :
  256. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  257. nGiorni = 29
  258. else
  259. nGiorni = 28
  260. break
  261. default :
  262. nGiorni = 31
  263. }
  264.  
  265. if (giorno > nGiorni || giorno < 0)
  266. return false
  267. else{
  268. oggTextfield.value = (
  269. ( (giorno<10) ? '0' + giorno : giorno ) + '-' +
  270. ( (mese<10) ? '0' + mese : mese) + '-' +
  271. ( anno )
  272. )
  273.  
  274. return true
  275. }
  276. }
  277.  
  278. function testDataGgMmAaaaHHii(oggTextfield, boolObbligatorio) {
  279. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  280.  
  281. if (oggTextfield.value == "")
  282. if (boolObbligatorio)
  283. return false
  284. else
  285. return true
  286.  
  287. var re = /^(\d{1,2})\-(\d{1,2})\-(\d{4}) (\d{1,2}):(\d{1,2})$/ // accetta anche 4-6-1999
  288.  
  289. if (!(re.test(oggTextfield.value)))
  290. return false
  291.  
  292. var arrMatches = re.exec(oggTextfield.value)
  293.  
  294. var giorno = parseInt(arrMatches[1],10)
  295. var mese = parseInt(arrMatches[2],10)
  296. var anno = parseInt(arrMatches[3],10)
  297. var ore = parseInt(arrMatches[4],10)
  298. var minu = parseInt(arrMatches[5],10)
  299.  
  300. //aggiunta la possibilità di mettere date con 0 nei mesi e nei giorni
  301. if (mese < 0 || mese > 12)
  302. return false
  303.  
  304. if (ore < 0 || ore > 24)
  305. return false
  306.  
  307. if (minu < 0 || minu > 59)
  308. return false
  309.  
  310. var nGiorni
  311.  
  312.  
  313. switch (mese) {
  314. case 4 : case 6 : case 9 : case 11 :
  315. nGiorni = 30
  316. break
  317. case 2 :
  318. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  319. nGiorni = 29
  320. else
  321. nGiorni = 28
  322. break
  323. default :
  324. nGiorni = 31
  325. }
  326.  
  327. if (giorno > nGiorni || giorno < 0)
  328. return false
  329. else{
  330. oggTextfield.value = (
  331. ( (giorno<10) ? '0' + giorno : giorno ) + '-' +
  332. ( (mese<10) ? '0' + mese : mese) + '-' +
  333. ( anno ) + ' ' +
  334. ( (ore<10) ? '0' + ore : ore) + ':' +
  335. ( (minu<10) ? '0' + minu: minu )
  336.  
  337. )
  338. return true
  339. }
  340. }
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348. function testDataAaaaMmGg(oggTextfield, boolObbligatorio) {
  349. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  350.  
  351. if (oggTextfield.value == "")
  352. if (boolObbligatorio)
  353. return false
  354. else
  355. return true
  356.  
  357. var re = /^(\d{4})\-(\d{1,2})\-(\d{1,2})$/ // accetta anche 4-6-1999
  358.  
  359. if (!(re.test(oggTextfield.value)))
  360. return false
  361.  
  362. var arrMatches = re.exec(oggTextfield.value)
  363.  
  364. var giorno = parseInt(arrMatches[3],10)
  365. var mese = parseInt(arrMatches[2],10)
  366. var anno = parseInt(arrMatches[1],10)
  367.  
  368. //aggiunta la possibilità di mettere date con 0 nei mesi e nei giorni
  369. if (mese < 0 || mese > 12)
  370. return false
  371.  
  372. var nGiorni
  373.  
  374. switch (mese) {
  375. case 4 : case 6 : case 9 : case 11 :
  376. nGiorni = 30
  377. break
  378. case 2 :
  379. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  380. nGiorni = 29
  381. else
  382. nGiorni = 28
  383. break
  384. default :
  385. nGiorni = 31
  386. }
  387.  
  388. if (giorno > nGiorni || giorno < 0)
  389. return false
  390. else {
  391. oggTextfield.value = (
  392. ( anno ) + '-' +
  393. ( (mese<10) ? '0' + mese : mese) + '-' +
  394. ( (giorno<10) ? '0' + giorno : giorno )
  395. )
  396. return true
  397. }
  398.  
  399. }
  400.  
  401. function testDataAaaaMmGgHHii(oggTextfield, boolObbligatorio) {
  402. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  403.  
  404. if (oggTextfield.value == "")
  405. if (boolObbligatorio)
  406. return false
  407. else
  408. return true
  409.  
  410. var re = /^(\d{4})\-(\d{1,2})\-(\d{1,2}) (\d{1,2}):(\d{1,2})$/ // accetta anche 4-6-1999
  411.  
  412. if (!(re.test(oggTextfield.value)))
  413. return false
  414.  
  415. var arrMatches = re.exec(oggTextfield.value)
  416.  
  417. var giorno = parseInt(arrMatches[3],10)
  418. var mese = parseInt(arrMatches[2],10)
  419. var anno = parseInt(arrMatches[1],10)
  420. var ore = parseInt(arrMatches[4],10)
  421. var minu = parseInt(arrMatches[5],10)
  422.  
  423. //aggiunta la possibilità di mettere date con 0 nei mesi e nei giorni
  424. if (mese < 0 || mese > 12)
  425. return false
  426. if (ore < 0 || ore > 24)
  427. return false
  428.  
  429. if (minu < 0 || minu > 59)
  430. return false
  431.  
  432. var nGiorni
  433.  
  434. switch (mese) {
  435. case 4 : case 6 : case 9 : case 11 :
  436. nGiorni = 30
  437. break
  438. case 2 :
  439. if (anno % 4 == 0 && (anno % 1000 == 0 || anno % 100 != 0))
  440. nGiorni = 29
  441. else
  442. nGiorni = 28
  443. break
  444. default :
  445. nGiorni = 31
  446. }
  447.  
  448. if (giorno > nGiorni || giorno < 0)
  449. return false
  450. else {
  451. oggTextfield.value = (
  452. ( anno ) + '-' +
  453. ( (mese<10) ? '0' + mese : mese) + '-' +
  454. ( (giorno<10) ? '0' + giorno : giorno ) + ' ' +
  455. ( (ore<10) ? '0' + ore : ore) + ':' +
  456. ( (minu<10) ? '0' + minu: minu )
  457. )
  458. return true
  459. }
  460.  
  461. }
  462.  
  463.  
  464. function testUrl(oggTextfield, boolObbligatorio) {
  465. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  466.  
  467. if (oggTextfield.value == "")
  468. if (boolObbligatorio)
  469. return false
  470. else
  471. return true
  472.  
  473. var re = /^http://///g
  474. return(re.test(oggTextfield.value))
  475. }
  476.  
  477.  
  478. function testEmail(oggTextfield, boolObbligatorio) {
  479. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  480. if (oggTextfield.value == "")
  481. if (boolObbligatorio)
  482. return false
  483. else
  484. return true
  485. var rex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  486. var risultato = rex.test(oggTextfield.value);
  487. return risultato
  488. }
  489.  
  490. function testRadio(oggRadio, boolObbligatorio) {
  491. for (var i=0; i<oggRadio.length; i++) if (oggRadio[i].checked) return true
  492. if (boolObbligatorio) return false
  493. else return true }
  494.  
  495. function testRadioValue(oggRadio, boolObbligatorio, valore) {
  496. for (var i=0; i<oggRadio.length; i++) if (oggRadio[i].checked && oggRadio[i].value==valore) return true;
  497. if (boolObbligatorio) return false
  498. else return true }
  499.  
  500. function testCheckbox(oggCheckbox, boolObbligatorio) {
  501. if ((!oggCheckbox.checked) && boolObbligatorio) return false
  502. else return true }
  503.  
  504. function testCAP(oggTextfield, boolObbligatorio) {
  505. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  506.  
  507. if (oggTextfield.value == "")
  508. if (boolObbligatorio)
  509. return false
  510. else
  511. return true
  512.  
  513. var re = /^\d{5}$/
  514. return(re.test(oggTextfield.value))
  515. }
  516.  
  517. function testCodiceFiscale(oggTextfield, boolObbligatorio) {
  518. oggTextfield.value = oggTextfield.value.toUpperCase().replace(/\s+$|^\s+/g,"")
  519.  
  520. if (oggTextfield.value == "")
  521. if (boolObbligatorio)
  522. return false
  523. else
  524. return true
  525.  
  526. var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/
  527. return(re.test(oggTextfield.value))
  528. }
  529.  
  530. function testAlfanumerico(oggTextfield, boolObbligatorio) {
  531. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  532.  
  533. if (oggTextfield.value == "")
  534. if (boolObbligatorio)
  535. return false
  536. else
  537. return true
  538.  
  539. var re = /^[a-zA-Z0-9]+$/
  540. return(re.test(oggTextfield.value))
  541. }
  542.  
  543. function testCampoTesto(oggTextfield, boolObbligatorio) {
  544. oggTextfield.value = oggTextfield.value.replace(/\s+$|^\s+/g,"")
  545.  
  546. if ((oggTextfield.value == "") && boolObbligatorio)
  547. return false
  548.  
  549. return true
  550. }
  551.  
  552. function testSerieDiCheckbox(oggCheckbox, boolObbligatorio) {
  553. for (var i=0; i<oggCheckbox.length; i++)
  554. if (oggCheckbox[i].checked)
  555. return true
  556.  
  557. if (boolObbligatorio)
  558. return false
  559. else
  560. return true
  561. }
  562.  
  563. function testCombobox(oggComboBox, boolObbligatorio) {
  564. var valore = oggComboBox.options[oggComboBox.selectedIndex].value;
  565. if ((valore == "") && boolObbligatorio)
  566. return false
  567. else
  568. return true
  569. }
  570.  
  571. function testComboboxMultiple(oggComboBox, boolObbligatorio) {
  572. if ((oggComboBox.selectedIndex == -1) && boolObbligatorio)
  573. return false
  574. else
  575. return true
  576. }
  577.  
  578. function trim(str) {
  579. // Trimma gli eventuali spazi all'inizio e alla fine della stringa e trasforma tutti gli spazi doppi in spazi singoli
  580. return str.replace(/\s+/g," ").replace(/^\s+/,"").replace(/\s+$/,"")
  581. }
  582.  
  583. // ====================================================================================================

URL: http://www.barattalo.it

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.