11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai fais un petit test sur https://regex101.com/, je voudrais pour mon formulaire prénom qu'il me prenne les prénoms composés et non-composés avec un majuscule à chaque prénom composés exemple :

Jean-michel => non
Jean-Marc => oui
james => non
Marcel => oui
Didier => oui

J'ai fais ce regex
^[A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ]{1}[a-zàâéèëêïîôöùüûçæœ]*[-][A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ]{1}[a-zàâéèëêïîôöùüûçæœ]*|^[A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ]{1}[a-zàâéèëêïîôöùüûçæœ]*


il est fonctionnel, mais dans mon regex, je lui ai dit tu prends entier ou composé.
j'aimerais lui dire tu prend entier et le composé qu'il soit optionnel avec le "?" qui veut dire optionnel et qu’il n'est pas le choix entre l'un ou l'autre
en gros

un truc comme ça
^[A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ]{1}[a-zàâéèëêïîôöùüûçæœ]*[la suite optionnel avec le fameux "?"] ^[-]{1}^[A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ]{1}[a-zàâéèëêïîôöùüûçæœ]*


Merci.
Modifié par niuxe (20 Jun 2024 - 23:31)
Modérateur
Salut,

Avec ce pattern ?

let pattern = /^([A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ][a-zàâéèëêïîôöùüûçæœ]+)[-\s]?([A-ZÇÀÄÂÉÈÊËÏÎÔÖÛÙÜÆŒ][a-zàâéèëêïîôöùüûçæœ]+)?$/

Avec les prénoms ci-dessous :

Jean-Michel
Jean-jacques
Jacques
renaud
Christophe
Jean Claude
Jean richard


Tu récupéreras :

Jean-Michel
Jacques
Christophe
Jean Claude

Modifié par niuxe (19 Jun 2024 - 18:20)
Meilleure solution
Modérateur
ricem a écrit :
Merci niuxen,
peut m'explique comment fonctionne le "?" (optionnel)


Permet d'indiquer que le motif ou le caractère précédent est optionnel
Quand je parle de motif, je parle :
- d'un ensemble de caractères délimités par une paire de crochets
- d'un groupe délimité par une paire de parenthèse. (plus communément appelé parenthèses capturantes)

Dans le code ci-dessous, le pattern c et d sont équivalents.


let pattern_a = /petite?/
let pattern_b = /petits?/
let pattern_c = /petit[es]?/
let pattern_d = /petit(e|s)?/

phrases en exemple :
De beaux petits oiseaux. Une petite fille. Un petit garçon. Des petites tasses.

Tu obtiendras :
petit
petite
petits
Mais tu obtiendras partiellement :
petites
Dans le cas où tu souhaiterais récupérer tous les mots préfixés par petit avec le suffixe "e" ou "s" ou "es", le pattern est :

let pattern_e = /petit(s|es?)?/

Modifié par niuxe (20 Jun 2024 - 01:55)