Wie schreibe ich einen regulären Ausdruck für Javascript Valiadation

^[A-Z0-9]*[ _][A-Z0-9]*$ space cannot be accepted either at the beginning or end. space cannot be accepted at all instead of the value. allow numbers and characters in the start and end. allow hyphens in the middle not mandatory 

Alle diese Werte sind akzeptierte Werte

 12345 ABC-12345 MM 1.8.10 530715 HS 9JAXXX4100 020-59898 HLXU1234 

Aber wenn ich ABC BCD tippe. Es heißt, es ist nicht richtig

  • Brauche eine JavaScript-Regex, die Groß- oder Kleinbuchstaben benötigt
  • Regex - Vollständige Zeichenfolge
  • Regex funktioniert nicht wie erwartet in JavaScript
  • Wie macht man regelmäßigen Ausdruck in nicht-gierig?
  • Javascript Regex, um das letzte Wort unabhängig von Sonderzeichen zu entsprechen
  • Javascript Ersetzen () und Regex
  • Ersetzen Sie alle Buchstaben in einem Wort auf * in js
  • So prüfen Sie, ob ein String mehrere Wörter an verschiedenen Orten enthält
  • 3 Solutions collect form web for “Wie schreibe ich einen regulären Ausdruck für Javascript Valiadation”

     ^[^ ]([\w- \.]+)[^ ]$ 

    [^ ] = Kann nicht mit dem Raum beginnen oder enden

    ([\w- .]+) = Alle Zeichen erlaubt (oder in diesem Fall \ w, Bindestrich, Raum und Punkt)

    Spiele: ABC BCD

    Ich denke, es ist klarer, den Regex in mehrere zu trennen.

     function validate (str) { if (/^\s|\s$/.test(str)) { // starts or ends with a space return false; } if (/^-|-$/.test(str)) { // starts or ends with a hyphen return false; } return /[\s\w-]+/.test(str); // ensure all valid characters and non-empty } 

    Ich bin nicht 100% sicher, was du meinst, weil in den erlaubten Beispielwerten du hast

    MM 1.8.10

    Die nicht der Regel entspricht, die Sie angegeben haben.

    Deshalb habe ich das Muster auf Ihren Beispielwerten basiert, das sollte funktionieren

    ^[A-Z0-9]+(?:[ _.-][A-Z0-9]+){0,3}$

    Erläuterung

    ^ Start Match am Anfang der Zeichenfolge

    [A-Z0-9]+ ein oder mehrere alphanumerische Großbuchstaben, so dass leere Werte fehlschlagen

    (?: Eine Nicht-Capture-Gruppe starten, diese Gruppe erlaubt es einem Trennzeichen, gefolgt von mindestens einem alphanumerischen Großbuchstaben, das obligatorisch ist, also muss der Wert mit alphanumerischen Zeichen beginnen und enden und die Trennzeichen sind nur dazwischen zulässig.

    [ _.-] Match ein Platz, Unterstrich, Punkt oder Bindestrich

    [A-Z0-9]+ entsprechen einem oder mehreren alphanumerischen Zeichen

    ) Schließen Sie die nicht-capturing Gruppe

    {0,3} Damit kann die Gruppe mit 0 oder bis zu 3 mal übereinstimmen.

    $ Entspricht dem Ende der Zeichenfolge

    Im letzten Teil {0,3}$ die 3 ist da, um nur bis zu 3 extra (also 4 insgesamt) Großbuchstaben alphanumerische Zeichengruppierungen zu erlauben, die durch ein Leerzeichen, Unterstrich, Punkt oder Bindestrich getrennt sind, können Sie die 3 in eine beliebige Ziffer ändern Sie wollen oder entfernen Sie es, um 0 oder unbegrenzte Gruppierungen zuzulassen.

    Beispielskript:

     <script type="text/javascript"> var strings = [ 'ABC BCD', '12345', 'ABC-12345', 'MM 1.8.10', '530715 HS 9JAXXX4100', '020-59898', 'HLXU1234' ] var matches = ''; for(i = 0; i < strings.length; i++) { matches += i + ' : ' + strings[i].match(/^[A-Z0-9]+(?:[ _.-][A-Z0-9]+){0,3}$/) + '\n'; } window.alert(matches); </script> 
    Lassen Sie uns Javascript Schönheit und nützlich machen.