de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
mo alaz
mo alaz
Question

Regex yang hanya menerima angka (0-9) dan karakter

Saya perlu regex yang hanya akan menerima angka dari 0-9 dan tidak ada yang lain. Tidak ada surat, tidak ada karakter.

Saya pikir ini akan bekerja:

^[0-9]

atau bahkan

\d+

tapi ini menerima karakter : ^,$,(,), dll

Saya berpikir bahwa kedua regexes di atas akan melakukan trik dan I'm tidak yakin mengapa orang-orang yang menerima karakter.

EDIT:

Ini adalah persis apa yang saya lakukan:

 private void OnTextChanged(object sender, EventArgs e)
    {

   if (!System.Text.RegularExpressions.Regex.IsMatch("^[0-9]", textbox.Text))
        {
            textbox.Text = string.Empty;
        }
    }

Hal ini memungkinkan karakter yang saya sebutkan di atas.

135 2013-10-31T19:44:59+00:00 1
mo alaz
mo alaz
Pertanyaan edit 31 Oktober 2013 в 7:55
Pemrograman
regex
c#
Solution / Answer
Michael Liu
Michael Liu
31 Oktober 2013 в 7:48
2013-10-31T19:48:15+00:00
Lebih
Sumber
Sunting
#22682255

Anda regex ^[0-9] pertandingan apa-apa awal dengan digit, termasuk string seperti "1A". Untuk menghindari parsial pertandingan, menambahkan $ sampai akhir:

^[0-9]*$

Ini menerima sejumlah digit, termasuk tidak ada. Untuk menerima satu atau lebih digit, mengubah * ke +. Untuk menerima tepat satu digit, hanya menghapus *.

UPDATE: Anda bercampur argumen untuk IsMatch. Pola harus menjadi argumen kedua, bukan yang pertama:

if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$"))

Hati-HATI: Dalam JavaScript, \d setara dengan [0-9], tapi di .NET, \d secara default setiap pertandingan Unicode digit desimal, termasuk eksotis tarif seperti ႒ (Myanmar 2) dan ߉ (N'Ko 9). Kecuali jika aplikasi anda siap untuk berurusan dengan karakter ini, tetap dengan [0-9] (atau pasokan [RegexOptions.ECMAScript](https://msdn.microsoft.com/en-us/library/yd1hzczs(v=vs. 110).aspx#Anchor_10) bendera).

Michael Liu
Michael Liu
Jawaban edit 11 Desember 2015 в 5:47
339
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Галина Утяшова
Terdaftar 21 jam yang lalu
2
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
3
Akshit Mehta
Terdaftar 6 hari yang lalu
4
me you
Terdaftar 1 minggu yang lalu
5
Никита иванов
Terdaftar 1 minggu yang lalu
BG
DE
EL
ES
FR
ID
IT
JA
NL
PT
RU
SK
TR
ZH
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi