CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP]Filtrer $ (preg_match)

Krominion
Krominion
Niveau 4
05 janvier 2014 à 08:06:17

Je me pose une question, j'en réfère à la communauté JVC.

Scénario: Je veux m'assurer qu'une donnée dans une variable string n'ai que des caractères alphanumérique (chiffres et lettres).

J'y arrive avec un preg_match (fonction qui recherche une séquence quelconque dans un string) mais je trouve ma façon très peu élégante. Je vous montre là façon que j'ai trouvé.

if(!preg_match('/^[a-zA-Z0-9]{'.strlen($string).'}
$/',
$string))
return "Caractères alphanumérique seulement pour le string.";

[a-zA-Z0-9] est mon expression régulière. J'ajoute la longeur exacte dans mon regex pour m'assurer du résultat.

Existe t'il une façon plus élégante de savoir si dans mon string il y a un caractère autre qu'alphanumérique?

vava740
vava740
Niveau 10
05 janvier 2014 à 09:22:56

Regarde du côté des quantifieurs [ http://perldoc.perl.org/perlre.html#Quantifiers ].

Krominion
Krominion
Niveau 4
05 janvier 2014 à 10:13:13

Ok, alors j'utiliserais déjà la bonne méthode?

vava740
vava740
Niveau 10
05 janvier 2014 à 10:22:19

Les accolades font en effet partie des quantifieurs, mais la documentation indique qu'il en existe d'autres, comme `*`, `+`, `{n,}` qui seront peut-être plus adaptés à ce que tu veux faire.

Popovitch
Popovitch
Niveau 26
05 janvier 2014 à 16:53:40

Fait gaffe avec ta regex : les accents ne sont pas pris en compte :ok:

deepblue
deepblue
Niveau 16
05 janvier 2014 à 18:36:04

if(!preg_match('/^\w+$/', $string)) {
return "Caractères alphanumérique seulement pour le string.";
}

Krominion
Krominion
Niveau 4
05 janvier 2014 à 23:20:56

deepblue, si je comprend bien:

'' -> délimite le regex dans la fonction
/ -> début et fin de la regex
^ -> doit débuté
\w -> caractère alphanumérique et _
+ -> un ou plus
$ -> doit finir

Est-ce que dans ton exemple un string comme "AA$%?/BB" serais valider par le preg_match() ?

deepblue
deepblue
Niveau 16
06 janvier 2014 à 07:03:10

Non.

^ -> indique le début de la chaine
$ -> indique la fin

/^\w+$/ -> que des caractères alphanum
/\w+/ -> au moins un caractère alphanum
/^\w+/ -> la chaine doit commencer par un caractère alphanum
/\w+$/ -> la chaine doit terminer par un caractère alphanum

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment