Bagaimana cara mencocokkan bilangan negatif juga dengan ekspresi reguler ini? Regex ini berfungsi dengan baik dengan nilai positif, tetapi saya ingin juga mengizinkan nilai negatif misalnya -10, -125.5 dll.
^[0-9]\d*(\.\d+)?$
Terima kasih
Bagaimana cara mencocokkan bilangan negatif juga dengan ekspresi reguler ini? Regex ini berfungsi dengan baik dengan nilai positif, tetapi saya ingin juga mengizinkan nilai negatif misalnya -10, -125.5 dll.
^[0-9]\d*(\.\d+)?$
Terima kasih
Jawaban:
Anda harus menambahkan tanda hubung opsional di awal dengan menambahkan -?
( ?
adalah pembilang yang berarti satu atau nol kejadian ):
^-?[0-9]\d*(\.\d+)?$
Saya memverifikasinya di Rubular dengan nilai-nilai ini:
10.00
-10.00
dan keduanya cocok seperti yang diharapkan.
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
Beberapa contoh ekspresi reguler:
Integer Positif :
^\d+$
Integer Negatif :
^-\d+$
Integer :
^-?\d+$
Angka Positif :
^\d*\.?\d+$
Angka Negatif :
^-\d*\.?\d+$
Angka Positif atau Angka Negatif :
^-?\d*\.{0,1}\d+$
Nomor telepon :
^\+?[\d\s]{3,}$
Telepon dengan kode :
^\+?[\d\s]+\(?[\d\s]{10,}$
Tahun 1900-2099 :
^(19|20)[\d]{2,2}$
Tanggal (hh bbm tttt, hh / b / tttt, dll.):
^([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}$
Saya tidak tahu mengapa Anda membutuhkan itu dulu [0-9]
.
Mencoba:
^-?\d*(\.\d+)?$
Memperbarui
Jika Anda ingin memastikan bahwa Anda memiliki digit di tempat satuan, gunakan
^-?\d+(\.\d+)?$
^-?\d+(\.\d+)?$
DIPERBARUI (13/08/2014): Ini adalah kode terbaik untuk bilangan positif dan negatif =)
(^-?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}
Saya mencoba dengan nomor ini dan berfungsi dengan baik:
-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
-*
menjadi -?
karena cocok -------------
.
Ini akan mengizinkan karakter -
atau +
hanya jika diikuti oleh angka:
^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
Ini akan memungkinkan bilangan bulat positif dan negatif
ValidationExpression = "^ -? [0-9] \ d * (\ d +)? $"
Saya punya beberapa percobaan tentang regex di django url, yang dibutuhkan dari angka negatif ke positif
^(?P<pid>(\-\d+|\d+))$
Mari kita fokus pada (\-\d+|\d+)
bagian ini dan mengabaikan yang lain, titik koma ini |
berarti OR dalam ekspresi reguler, maka nilai negatif akan cocok dengan \-\d+
bagian ini , dan nilai positif menjadi ini\d+
Ini berhasil untuk saya, mengizinkan angka negatif dan positif :
\-*\d+
Jika menggunakan C #:
Regex.Match(someString, @"\-*\d+").Value;
Jika Anda memiliki ini val="-12XXX.0abc23"
dan Anda hanya ingin mengekstrak angka desimal, dalam hal ini regex ( ^-?[0-9]\d*(\.\d+)?$
) tidak akan membantu Anda mencapainya.
ini adalah kode yang tepat dengan ekspresi reguler yang benar:
var val="-12XXX.0abc23";
val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
console.log(val);
Hanya untuk bilangan negatif, ini sempurna.
^-\d*\.?\d+$
^[+-]?\d{1,18}(\.\d{1,2})?$
menerima nilai desimal positif atau negatif.
^(-?\d+\.)?-?\d+$
mengizinkan:
23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234