Ich möchte testen, ob der Benutzer nur einen alphanumerischen Wert oder ein "-" eingibt.
hello-world -> Match
hello-first-world -> match
this-is-my-super-world -> match
hello--world -> NO MATCH
hello-world-------this-is -> NO MATCH
-hello-world -> NO MATCH (leading dash)
hello-world- -> NO MATCH (trailing dash)
Hier ist, was ich bisher habe, aber ich weiß nicht, wie ich das "-" -Zeichen implementieren soll, um es zu testen, wenn es nur einmal ohne Wiederholung ist.
var regExp = /^[A-Za-z0-9-]+$/;
Lösung des Problems
Versuche dies:
/^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$/
Dadurch werden nur Folgen von einer oder mehreren Folgen alphanumerischer Zeichen, die durch ein einzelnes getrennt sind, abgeglichen -
. Wenn Sie einzelne Wörter nicht zulassen möchten (z. B. nur hello
), ersetzen Sie den *
Multiplikator durch +
, um nur eine oder mehrere Wiederholungen der letzten Gruppe zuzulassen.
Keine Kommentare:
Kommentar veröffentlichen