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.
Vous devez insérer les caractères que vous souhaitez séparer dans une classe de caractères , qui indique au moteur des expressions rationnelles "n'importe lequel de ces caractères est une correspondance". Pour vos besoins, cela ressemblerait à:
date.split(/[.,\/ -]/)
Bien que les tirets aient une signification particulière dans les classes de caractères en tant que spécificateur d'intervalle (c.-à-d. [a-z]
signifie le même que [abcdefghijklmnopqrstuvwxyz]
), si vous le définissez comme la dernière chose de la classe, il est supposé signifier un tiret littéral et ne nécessite pas d'être échappé.
Pour expliquer pourquoi votre modèle n'a pas fonctionné, /-./
indique au moteur des expressions régulières de faire correspondre un tiret littéral suivi de tout caractère ( dots sont des caractères génériques dans les expressions régulières). Avec "02-25-2010", il se scinde à chaque fois que "-2" est rencontré, car le tiret correspond et le point correspond à "2".
ou juste (autre chose que des chiffres):
date.split(/\D/);
vous pouvez simplement utiliser
date.split(/-/);
ou
date.split('-');
Puis divisez-le sur autre chose que des chiffres:
date.split(/[^0-9]/);
Dites que votre chaîne est:
let str = `Word1
Word2;Word3,Word4,Word5;Word7
Word8,Word9;Word10`;
Vous voulez diviser la chaîne par les délimiteurs suivants:
Vous pouvez diviser la chaîne comme ceci:
let rawElements = str.split(new RegExp('[,;\n]', 'g'));
Enfin, vous devrez peut-être rogner les éléments du tableau:
let elements = rawElements.map(element => element.trim());
ou tout simplement utiliser pour les chaînes de date 2015-05-20 ou 2015.05.20
date.split(/\.|-/);