Ich brauche Hilfe mit einem Javascript Regex, weil ich es nicht herausfinden kann. Die Regex benötigt die folgenden Kriterien:
- Mindestens 3 Zeichen
- Maximal 40 Zeichen
- Enthält nur Buchstaben, Zahlen ein Leerzeichen (keine Zeilenumbrüche und andere Zeichen wie?, _, ...)
- KANN NUR 1 * enthalten, aber nach 3 Zeichen
Hier einige Testdaten:
- Ich bin ein paar Testdaten -> OK
- Ich bin * ein paar Testdaten -> OK
- Ich bin ein paar Testdaten -> NOK (* nach 3 Zeichen)
- Ich bin * einige * Testdaten -> NOK (0 oder 1 mal *)
- Ich bin einige Testdaten und ich bin viel länger als das Maximum -> NOK (zu lang)
- AB -> NOK (nicht lang genug)
Weil ich kein Profi darin bin, eine Regex zu erstellen, ist das, was ich bisher gesammelt habe (aber ich kann sie nicht zusammensetzen):
- / [^ Sn] / -> Nur Leerzeichen und keine Zeilenumbrüche
- / [w] / -> Wortzeichen
- {3,40} -> Zwischen 3 und 40 Zeichen
Antworten:
2 für die Antwort № 1Dieser Regex sollte für alle Bedingungen funktionieren:
^(?!.{1,2}?*)(?!(?:.*?*){2})[w .?*,]{3,40}$
Online-Demo: http://regex101.com/r/eJ3aF7
2 für die Antwort № 2
/^(?=.{,40}$)[A-Za-z0-9s]{3,}*?[A-Za-z0-9s]*$/