Hallo, ich versuche, was ich für eine ziemlich einfache Regex in Javascript hielt, aber es bereitet mir viele Probleme. Ich möchte die Möglichkeit haben, ein Datum per Javascript aufzuteilen, entweder durch ein ‘-‘,’.’, “https://stackoverflow.com/” und ‘ ‘.
var date = "02-25-2010";
var myregexp2 = new RegExp("-.");
dateArray = date.split(myregexp2);
Was ist die richtige Regex dafür, jede Hilfe wäre großartig.
Sie müssen die Zeichen, die Sie aufteilen möchten, in a setzen Charakterklasse, die der Engine für reguläre Ausdrücke mitteilt, dass “eines dieser Zeichen eine Übereinstimmung ist”. Für Ihre Zwecke würde dies so aussehen:
date.split(/[.,\/ -]/)
Obwohl Bindestriche in Zeichenklassen eine besondere Bedeutung als Bereichsbezeichner haben (z [a-z]
bedeutet dasselbe wie [abcdefghijklmnopqrstuvwxyz]
), wenn Sie es als letztes in der Klasse angeben, wird es als wörtlicher Gedankenstrich verstanden und muss nicht maskiert werden.
Um zu erklären, warum Ihr Muster nicht funktioniert hat, /-./
weist die Engine für reguläre Ausdrücke an, einen wörtlichen Gedankenstrich gefolgt von einem beliebigen Zeichen (Punkte sind Platzhalterzeichen in regulären Ausdrücken). Bei “25.02.2010” würde es jedes Mal geteilt, wenn “-2” gefunden wird, da der Bindestrich zu “2” passt und der Punkt zu “2”.
oder einfach (alles außer Zahlen):
date.split(/\D/);

Allan Ruine
könntest du einfach verwenden
date.split(/-/);
oder
date.split('-');
Angenommen, Ihre Zeichenfolge ist:
let str = `word1
word2;word3,word4,word5;word7
word8,word9;word10`;
Sie möchten die Zeichenfolge durch die folgenden Trennzeichen aufteilen:
- Doppelpunkt
- Semikolon
- Neue Zeile
Sie könnten die Zeichenfolge wie folgt aufteilen:
let rawElements = str.split(new RegExp('[,;\n]', 'g'));
Schließlich müssen Sie möglicherweise die Elemente im Array kürzen:
let elements = rawElements.map(element => element.trim());

nicht zu gebrauchen
Dann teilen Sie es auf alles andere als Zahlen auf:
date.split(/[^0-9]/);

Piotr
oder verwenden Sie einfach für Datumszeichenfolgen 2015-05-20 oder 2015.05.20
date.split(/\.|-/);

Omar
versuchen Sie es stattdessen
date.split(/\W+/)
10162300cookie-checkJavascript-Split-Regex-Frageyes