Regex javascript

bonsoir,

j’ai un regex actuellement qui valide si la chaine a des caractères alphanumeriques:

var form = new RegExp("[\w]+",“gi” );

il marche tres bien, mais j aimerais autoriser en plus les espaces \s

mais comment ajouter a ce regex \s ?

merci

t’as essayé comme ça ? var form = new RegExp("[\w]+",“gi”,"\s");

Utilise l’autre syntaxe :

var form = /[\w]+/gi;

Ensuite pour ta question initiale, hé bien: /[\w ]+/gi;

[ … ] = sélection de caractères

Un seul conseil au niveau regexp: vois déjà ce que tu peux avoir, et n’hésite pas à te limiter

Music finder && Sans-Nom> malheureusement ca ne marche pas. En effet et c’est aussi ce que j avais comme problème quand j’essayais d’ajouter le \s, ca me coince tout y compris quand il y a pourtant des caractères alaphanumériques

(je fais afficher un message quand le masque ne convient pas)

exemple avec var form = new RegExp("[\w]+",“gi”,"\s"); ou var form = /[\w]+/gi; si j’indique dans le champ “azerty”, ca lui convient pas alors qu il y a rien qui bloque…

Tu fais quoi exactement?

Ouais tu pourrai mettre le bout de code en question ? ça serai plus simple pour comprendre ou tu veut en venir…

voici la code complet de la fonction javascript:


function control_modele()
	{
	modele= document.getElementById('modele').value;
	var form = new RegExp("[\\W]","gi");
	var contr=modele.match(form);
	if(contr!=null)
		{ 
		alert ("Le modele n'est pas valide (caractère alphanumérique et espace uniquement) !"); 
		}
	}

j’appel cette fonction d’un champ:
Modèle:

donc pour tout caractère non alphanumérique ou espace, le message doit s’afficher…

Je vais peut être dire une bétise, mais ce n’est pas l’inverse plutôt ? Si contr est différent de null, alors la chaine correspond à ta regexp, et donc il s’agit bien de caractères alphanumériques…

non car ce code fonctionne parfaitement

Son problème est qu’il ne gère pas les espaces…

On utilise match quand on veut faire quelque chose du résultat, sinon on utilise test sur l’objet regexp:

if (!/^[\w ]+$/gi.test(modele)) {
  alert('...');
}

Et en l’occurrence, \w = mot alphanumérique, \W = tout ce qui n’est pas mot alphanumérique

et justement: comment ajouter a la fois le test si le texte indiqué dans le modèle est a la fois alphanumérique (\w) et peut contenir des espaces? et dans tous les autres cas, l’affichage du message

?

Ce que j’ai fait c’est exactement ça…

ben heu…je m’attendais a un \s quelque part c’est pour ça que je ne comprends pas…

\s = caractères blancs. Si tu l’utilises, ie: [\w\s], alors tu va autoriser les sauts de lignes (\n), les retours chariots (\r), les tabulations (\r) et quelques caractères blancs liées à l’unicode.

oki!!!
merci pour cette explication complementaire

je comprends maintenant le role de l’espace juste après le \w

merci bien, ca marche nickel :slight_smile: