Trim, removespace, pattern mail, pattern téléphone, pattern date...

Contenu du snippet

Histoire de faire une piqure de rappel sur les contrôles de surface côté client, deux ou trois utilitaires.

Source / Exemple :


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>contrôle date basic</title>
		<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
		<script type="text/javascript" charset="utf-8">
			// <![CDATA[
	
			function extendProperties(obj, extension) {
				for(var property in extension) {
					extension.hasOwnProperty(property) && !obj[property] ? obj[property] = extension[property] : false;
				}
				return obj;
			}
			extendProperties(String.prototype, {
				mail:function() {
					var reg = /^.+@.+\.([a-z]{2,})$/i;
					return reg.test(this) ? true : false;
				},
			
				phone:function() {
					var reg = /^[\+{1} ?]\d{7,}$/;
					return reg.test(this) ? true : false;
				},
			
				trim:function() {
					var regstart = /^[^\s]+/g;
					var regend = /[^\s]+$/g;
					return this.replace(regstart, '').replace(regend, '');
				},
			
				removespace:function() {
					var reg = /[ ]+/g;
					return this.replace(reg, '');
				},
			
				date:function() {
					var v = true;
					var m = [31,28,31,30,31,30,31,31,30,31,30,31];
					var e = /^([\d]{2}\/){2}\d{4}$/;
					var vs = this.split('/');
					v = e.test(this) ? (parseInt(vs[1]) > 12 || parseInt(vs[1]) < 1 ? false : ((parseInt(vs[1]) != 2) ? (parseInt(vs[0]) > m[parseInt(vs[1])-1] ? false : true) : (parseInt(vs[0]) > (vs[2]%4 == 0 ? m[1]+1 : m[1]) ? false : true))) : false;
					return v;
				}
			});
			//]]>
		</script>
		<style type="text/css">

  • {
font-family: Courier; font-size: .8em; } label * { white-space: pre-line; } </style> </head> <body> <form action="#"> <p> <label for="mail"> Mail : you@domain.com ---- <input type="text" name="mail" id="mail" /> </label> <button type="button" onclick="alert(document.getElementById('mail').value.mail() ? 'mail OK' : 'mail KO')">mail()</button> </p> <p> <label for="phone"> Phone : +3312345... ------ <input type="text" name="phone" id="phone" /> </label> <button type="button" onclick="alert(document.getElementById('phone').value.phone() ? 'phone OK' : 'phone KO')">phone()</button> </p> <p> <label for="date"> Date : dd/mm/yyyy -------- <input type="text" name="date" id="date" /> </label> <button type="button" onclick="alert(document.getElementById('date').value.date() ? 'date OK' : 'date KO')">date()</button> </p> <p> <label for="trim"> Trim : ------------------- <input type="text" name="trim" id="trim" value=" toto lala titi c " /> </label> <button type="button" onclick="document.getElementById('trim').value = document.getElementById('trim').value.trim()">trim()</button> </p> <p> <label for="removespace"> Removespace : ------------ <input type="text" name="removespace" id="removespace" value=" toto lala titi c " /> </label> <button type="button" onclick="document.getElementById('trim').value = document.getElementById('trim').value.removespace()">removespace()</button> </p> <button type="reset">reset form</button> </form> </body> </html>

Conclusion :


A intégrer dans des fonctions de submit sans toutefois oublier les contôles serveurs... :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.