Suggerirei di utilizzare jQuery Validate e quindi estendere la funzionalità utilizzando il codice seguente, che ho trovato su this blog post.
Offre un bel frammento di codice (e migliora nei commenti) che è possibile utilizzare per numeri internazionali e numeri di telefono statunitensi. Ero già utilizzando il plugin additional methods
così ho rinominato il metodo intlphone
, e quindi il codice alla mia pagina web, dopo jQuery e prima della messa a punto document.ready
/validazione:
jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');
sul campo d'volevo essere un telefono numero che ho impostato la classe per essere intlphone
e ha aggiunto una proprietà/attributo HTML5 per la lunghezza minima (anche se questo potrebbe essere fatto anche specificando le regole di convalida durante l'impostazione di convalida), quindi il mio ingresso era qualcosa di simile:
<input class="required intlphone" name="phone" minLength="7" type="text" />
Come dice il post sul blog, accetta anche cifre s -+()
e anche gli spazi e le estensioni in formato x:
o ext:
Non è una garanzia che un numero di telefono sarà valido al 100% del tempo, ma non è un cattivo inizio.
+1, la convalida di entrambi e dei numeri internazionali sarà impossibile. – OptimusCrime
In realtà c'è un modo, è possibile convalidare un numero che compire https://en.wikipedia.org/wiki/E.164 –