5546 sujets

Sémantique web et HTML

Bonjour,

Qu'utilisevez-vous comme pattern pour un prénom ?
J'utilise : pattern="[a-zA-ZàâæçéèêëîïôœùûüÿÀÂÆÇnÉÈÊËÎÏÔŒÙÛÜŸ-]+"
mais je me pose la question s'il existe autre chose de plus... jolie, simple ?

Merci à vous,
Bonsoir,

Mon truc à moi il n'est pas forcément simple : je subdivise les patterns afin d'aiguiller les erreurs de l'utilisateur. Mon code (pour WordPress) :
	if(strlen($nom) < '2') {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: name contains a single character.', 'scriptura' ). '</p>';
	}
	if (preg_match("#.{30,}#", $nom)) {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: Your name is longer than 30 characters.', 'scriptura' ). '</p>';
	}
	if (!preg_match("#^[A-Z]#", $nom)) {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: it lacks a capital letter at the beginning of your name.', 'scriptura' ). '</p>';
	}
	if (preg_match("#[0-9]#", $nom)) {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: numeric characters are placed in your name.', 'scriptura' ). '</p>';
	}
	if (preg_match("#[&!?/\+=_;:,$*()<>§@\#\".]#", $nom)) {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: special characters or punctuation are placed in your name.', 'scriptura' ). '</p>';
	}
	if(empty($nom)) {
		$valid = false;
		$erreurNom = '<p class="form-error"></span>' .__( 'Invalid field: Your name is not specified.', 'scriptura' ). '</p>';
	}
Salut,

Je ne suis pas expert dans ce domaine (quand je vois les formules de certains, je me sens vraiment tout petit !), mais j'essaierais \w qui te donne toutes les lettres (maj, min, accentuées), les chiffres de 0 à 9 et le '_'. Je ne sais pas si on peut soustraire les chiffres (jamais vu ça, mais je me dis que ce serait bien pratique) ?
Sinon, tu peux probablement simplifier en écrivant la première et la dernière des lettres accentuées entre crochets [a-zA-ZÀ-ÿ]

Bon de plus experts que moi pourront peut-être compléter... ou corriger : en matière d'expressions régulières, il y a des choses qui fonctionnent dans un langage et pas dans l'autre, il n'est donc pas impossible que je dise des bêtises !
@Olivier C> Je trouve assez lourd quand même. On pourrait résumer à :

preg_match('`^(\p{L}+[\'-]?\p{L}+){1,30}$`u', $chaine_a_tester);

En JS on peut s'approcher de ça avec :

/^([a-zA-Z\u00C0-\u00FF]+['-]?[a-zA-Z\u00C0-\u00FF]+){1,30}$/;
Modérateur
Bonjour,

Voici un lien qui se consacre justement aux pattern. La Bdd est alimentée en permanence par les demandes et contributions des visiteurs.

Bonne lecture sur Html5 Pattern !
Modifié par Greg_Lumiere (11 Mar 2016 - 10:44)
Olivier C a écrit :
\p{L}

Ah oui, ça c'est pas mal ! Je ne connaissais pas.


Moi non plus, mais ça veut dire quoi ? Mes recherches me laisseraient comprendre que \p veut dire "n’importe quelle lettre", mais pas sûr. Si oui, cela englobe aussi les caractères accentués et les caractères spéciaux ? et le {L} ?

merci pour ma culture…
Zelalsan a écrit :
Un peut tard peut être mais bon... Il faut prendre le temps de lire les specs. Tout y est indiqué.
Pour les curieux, je recommande de lire entièrement la partie concernant les expressions rationnelles. Ceux qui sont fans adoreront !


Merci pour ces sources, elles simplifie grandement (à mon avis) l’usage des patterns à l’international. Par contre, n’est-ce compatible qu’avec PHP ou bien l’est-ce aussi avec JS ou d’autres languages ?
Derwoed a écrit :
Par contre, n’est-ce compatible qu’avec PHP ou bien l’est-ce aussi avec JS ou d’autres languages ?

Ce n'est pas tout compatible, même s'il la grosse majorité des fonctionnalités sont existantes dans la plupart des langages, il existent des différences...
Par exemple, les assertions arrières (ou lookbehind) positive ou négative n'existe pas en javascript (hélas), mais en PHP si (mais il y en a d'autres...)
Et pour tout ce qui est test de Regex, je représente à nouveau l'outil que j'affectionne : regex101.com/
SolidSnake a écrit :

Et pour tout ce qui est test de Regex, je représente à nouveau l'outil que j'affectionne : regex101.com/


Oui, je suis tombé sur cet outil peu de temps après mon post, et pensais mettre un lien ici ! C’est donc déjà fait Smiley cligne !
Derwoed a écrit :
Par contre, n’est-ce compatible qu’avec PHP ou bien l’est-ce aussi avec JS ou d’autres languages ?

PCRE veut dire Perl Compatible Regular Expression (je te laisse googler pour approfondir).
En JS ce n'est pas pareil. Hélas les possibilités sont bien plus minces. Il existe une libraire JS qui reprend les grandes lignes des expressions Perl dont j'ai oublié le nom. Il faut chercher sur Google PCRE js ou PHP regex js ou un truc du genre... On se comprend hein Smiley biggrin .