wake-up-neo.net

Regex erlaubt nur Zahlen unter 10 Ziffern?

Ich versuche einen Regex zu schreiben, um zu überprüfen, ob eine Eingabe eine reine, positive ganze Zahl ist (bis zu 10 Ziffern, aber ich wende diese Logik an anderer Stelle an).

Im Moment ist dies die Regex, mit der ich arbeite (die ich von hier bekommen habe):

 ^(([1-9]*)|(([1-9]*).([0-9]*)))$

In dieser Funktion:

if (/^(([1-9]*)|(([1-9]*).([0-9]*)))$/.test($('#targetMe').val())) {
            alert('we cool')
        } else {
            alert('we not')
        }

Ich kann es jedoch scheinbar nicht zum Laufen bringen und bin mir nicht sicher, ob es sich um die Regex oder die Funktion handelt. Ich muss%, nicht zulassen. und auch. Ich möchte nur numerische Zeichen. Kann mir jemand die richtige Richtung zeigen?

8
streetlight

Sie können diesen Weg machen:

/^[0-9]{1,10}$/

Code:

var tempVal = $('#targetMe').val();
if (/^[0-9]{1,10}$/.test(+tempVal)) // OR if (/^[0-9]{1,10}$/.test(+tempVal) && tempVal.length<=10) 
  alert('we cool');
else
  alert('we not');

Siehe LIVE DEMO

20
Siva Charan
var value = $('#targetMe').val(),
    re    = /^[1-9][0-9]{0,8}$/;

if (re.test(value)) {
    // ok
}
8
fcalderan

Benötigen Sie einen regulären Ausdruck?

var value = +$('#targetMe').val();
if (value && value<9999999999) { /*etc.*/ }
3
KooiInc
  var reg      = /^[0-9]{1,10}$/;
  var checking = reg.test($('#number').val()); 

  if(checking){
    return number;
  }else{
    return false;
  }
2
Krucamper

Das ist das Problem, wenn Code blind kopiert wird. Der reguläre Ausdruck, den Sie kopiert haben, bezieht sich auf Zahlen einschließlich Fließkommazahlen mit einer beliebigen Anzahl von Ziffern - und er ist fehlerhaft, weil er die Ziffer 0 vor dem Dezimalzeichen nicht zulässt.

Sie möchten die folgende Regex:

^[1-9][0-9]{0,9}$
1
Daniel Hilgarth

Verwenden Sie diesen regulären Ausdruck, um nur zehn Ziffern zu finden:

@"^\d{10}$"

Verwenden Sie zum Suchen einer Folge von zehn aufeinander folgenden Ziffern an einer beliebigen Zeichenfolge Folgendes:

@"\d{10}"

Beachten Sie, dass dies auch die ersten 10 Ziffern einer 11-stelligen Nummer findet. Suchen Sie an einer beliebigen Stelle in der Zeichenfolge nach genau 10 aufeinander folgenden Ziffern.

@"(?<!\d)\d{10}(?!\d)"
0
Sunil Acharya