Regex, um die 10-15-stellige Nummer zu finden

9

Verwenden Sie den folgenden regulären Ausdruck

%Vor%

Meine Anforderungen sind

  1. Um eine 10-15-stellige Nummer zu finden, die nicht mit 0 und Pause beginnen sollte, sollten alle Ziffern numerisch sein.
  2. Wenn eine 10-15-stellige Nummer eingegeben wird, die mit Null beginnt, stimmt der Teststring nicht mit dem Muster überein.my Validierungsfehler blah blah wird angezeigt.
  3. Mein Problem ist, wenn ich eine 10-15-stellige Nummer eingabe, die nicht mit Null beginnt, dann wird auch eine Validierungsfehlermeldung angezeigt.

Fehle ich etwas in Regex?

    
cxyz 16.10.2013, 18:25
quelle

4 Antworten

14

Mit "^[1-9][0-9]{14}" stimmen Sie 15 Ziffernzahl und nicht 10-15 Ziffern überein. {14} Quantifizierer würde genau 14 Wiederholung des vorherigen Musters entsprechen. Geben Sie dort einen Bereich mit {m,n} quantifier:

ein %Vor%

Sie müssen Anker nicht mit Matcher#matches() Methode. Die Anker sind impliziert. Auch hier können Sie direkt % co_de verwenden % Methode:

%Vor%     
Rohit Jain 16.10.2013, 18:28
quelle
7

/^[1-9][0-9]{9,14}$/ entspricht einer beliebigen Zahl von 10 bis 15 Ziffern.

DEMO

Autopsie :

  • ^ - das MUSS der Anfang des Textes sein
  • [1-9] - jede Ziffer zwischen 1 und 9
  • [0-9]{9,14} - jede Ziffer zwischen 0 und 9 wird 9- bis 14-mal wiederholt
  • $ - Dies muss das Ende des Textes sein
h2ooooooo 16.10.2013 18:30
quelle
2

Oder, eine Alternative, damit Sie später auf einen Blick sehen können -

^(?!0)\d{10,15}$

    
sln 16.10.2013 18:35
quelle
1

To match a 10-15 digit number which should not start with 0

Verwende den End of Line-Anker $ in deiner Regex mit einem Limit zwischen 9 bis 14:

%Vor%     
anubhava 16.10.2013 18:27
quelle

Tags und Links