Negatif sayıları bu normal ifadeyle nasıl eşleştirebilirim? Bu normal ifade pozitif değerlerle iyi çalışıyor, ancak negatif değerlere de izin vermesini istiyorum, örneğin -10, -125.5 vb.
^[0-9]\d*(\.\d+)?$
Teşekkürler
Negatif sayıları bu normal ifadeyle nasıl eşleştirebilirim? Bu normal ifade pozitif değerlerle iyi çalışıyor, ancak negatif değerlere de izin vermesini istiyorum, örneğin -10, -125.5 vb.
^[0-9]\d*(\.\d+)?$
Teşekkürler
Yanıtlar:
Başlangıçta isteğe bağlı bir kısa çizgi eklemelisiniz -?( nicelik belirteci? , bir veya sıfır oluşum anlamına gelir ):
^-?[0-9]\d*(\.\d+)?$
Bunu Rubular'da şu değerlerle doğruladım:
10.00
-10.00
ve her ikisi de beklendiği gibi eşleşti.
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
Bazı Normal ifade örnekleri:
Pozitif Tamsayılar :
^\d+$
Negatif Tamsayılar :
^-\d+$
Tamsayı :
^-?\d+$
Pozitif Sayı :
^\d*\.?\d+$
Negatif Sayı :
^-\d*\.?\d+$
Pozitif Sayı veya Negatif Sayı :
^-?\d*\.{0,1}\d+$
Telefon numarası :
^\+?[\d\s]{3,}$
Kodlu telefon :
^\+?[\d\s]+\(?[\d\s]{10,}$
1900-2099 Yılı :
^(19|20)[\d]{2,2}$
Tarih (gg aa yyyy, g / a / yyyy, vb.):
^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$
IP v4 :
^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$
Neden önce buna ihtiyacın olduğunu bilmiyorum [0-9].
Deneyin:
^-?\d*(\.\d+)?$
Güncelleme
Birler yerinde bir rakam olacağından emin olmak istiyorsan, kullan
^-?\d+(\.\d+)?$
^-?\d+(\.\d+)?$, durum buysa işe
GÜNCELLENDİ (13/08/2014): Bu, pozitif ve negatif sayılar için en iyi koddur =)
(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}
Bu numaralarla denedim ve iyi çalışıyor:
-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701
-*için -?eşleştiği için -------------.
Bu, bir -veya +karakterine yalnızca ardından bir sayı geldiğinde izin verir :
^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
Bu hem pozitif hem de negatif tam sayılara izin verecektir
ValidationExpression = "^ -? [0-9] \ d * (\ d +)? $"
Negatiften pozitif sayılara doğru gereken django url'de regex hakkında bazı deneylerim var
^(?P<pid>(\-\d+|\d+))$
Bu (\-\d+|\d+)kısma odaklanıp diğerlerini göz ardı edelim , bu noktalı virgül normal ifadede OR| anlamına gelir , sonra negatif değer bu kısımla eşleşir ve buna pozitif değer eklenir\-\d+\d+
Bu benim için çalıştı ve hem negatif hem de pozitif sayılara izin verdi :
\-*\d+
C # kullanılıyorsa:
Regex.Match(someString, @"\-*\d+").Value;
Buna sahipseniz val="-12XXX.0abc23"ve yalnızca ondalık sayıyı çıkarmak istiyorsanız, bu durumda bu regex ( ^-?[0-9]\d*(\.\d+)?$) bunu başarmanıza yardımcı olmayacaktır.
bu, doğru algılama normal ifadesine sahip uygun koddur:
var val="-12XXX.0abc23";
val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
console.log(val);
Yalnızca negatif sayı için bu mükemmeldir.
^-\d*\.?\d+$
^[+-]?\d{1,18}(\.\d{1,2})?$
pozitif veya negatif ondalık değerleri kabul eder.