144 votes

Javascript split regex question

bonjour j'essaye ce que je pensais être une regex assez facile en Javascript mais me donne beaucoup de peine. Je veux pouvoir scinder une date via javascript en scindant soit par '-', '.', '/' Et ''.

 var date = "02-25-2010";
var myregexp2 = new RegExp("-."); 
dateArray = date.split(myregexp2);
 

Quelle est la regex correcte pour cela toute aide serait formidable.

217voto

Daniel Vandersluis Points 30498

Vous avez besoin de mettre les caractères que vous voulez diviser dans une classe de caractères, qui raconte le moteur d'expression régulière "aucun de ces caractères est un match". Pour vos besoins, cela ressemblerait à:

date.split(/[.,\/ -]/)

Bien que les tirets ont une signification spéciale dans les classes de caractères que d'une gamme spécificateur (ie [a-z] signifie la même chose que [abcdefghijklmnopqrstuvwxyz]), si vous mettez comme la dernière chose dans la classe, c'est-à-dire un littéral de tableau de bord et n'a pas besoin d'être échappé.

Pour expliquer pourquoi votre modèle n'a pas de travail, /-./ raconte le moteur d'expression régulière pour correspondre à un littéral caractère tiret suivi par n'importe quel caractère (points sont des caractères génériques dans les expressions régulières). Avec "02-25-2010", il permettrait de diviser chaque fois "-2" est rencontré, parce que le tableau de bord des matchs et le point correspond à "2".

14voto

Jo3y Points 21

ou juste (autre chose que des chiffres):

 date.split(/\D/);
 

6voto

Allan Ruin Points 397

vous pouvez simplement utiliser

 date.split(/-/);
 

ou

 date.split('-');
 

5voto

useless Points 1083

Puis divisez-le sur autre chose que des chiffres:

 date.split(/[^0-9]/);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X