Regex untuk ruang memisahkan nilai angka 60 persis


0

Adakah yang bisa membantu saya untuk menulis regex untuk 60 nilai angka yang dipisahkan ruang? Nilai bisa berupa angka float atau bilangan bulat.

Misalnya: "90,90 78,54 34 ...." (nilai 60) atau "89,43 90 34 ...." (nilai 60).

Saya mencoba yang berikut

^(\s*([0-9]|[0-9.])+\s*){60}$

Tapi, ini menyebabkan browser macet.


"ini akan membuat browser mogok" - browser sendiri tidak mendukung ekspresi reguler, di mana Anda ingin menggunakan regex?
Máté Juhász

Saya menggunakan regex dalam kode javascript ... jadi ketika dipanggil browser, crash
Nilesh

Dengan objek dan kode apa Anda memanggilnya?
Seth

memanggilnya dalam angularJS ng-pola untuk bidang teks input ..
Nilesh

Jawaban:


1

Beberapa masalah dengan ekspresi Anda:

^(\s*([0-9]|[0-9.])+\s*){60}$

  • kenapa kamu punya \s* baik di awal maupun di akhir? Salah satunya (pada akhirnya) sudah cukup
  • \s*: mengapa *? Spasi bukan opsional, harus ada spasi putih di antara angka (jika Anda ingin membahas situasi di mana angka terakhir adalah akhir dari string, maka Anda dapat menggunakan ([0-9.]+\s+){59}[0-9.]+
  • ([0-9]|[0-9.]) - [0-9.] akan cukup, menghemat banyak langkah untuk mesin regex
  • ^...$ - apakah Anda ingin memilih 60 angka, atau hanya memvalidasi string yang terdiri dari 60 angka? (pendekatan Anda menunjukkan yang kedua).

Jadi ungkapan yang benar adalah:

  • ([0-9.]+\s+){59}[0-9.]+,
  • atau termasuk ruang utama dan belakang:
    \s*([0-9.]+\s+){59}[0-9.]+\s*,
  • dan secara opsional Anda dapat menyertakannya ^...$

Terima kasih..Apakah 100% benar .. tapi bolehkah saya tahu bisakah kita memeriksa atau memangkas spasi putih terkemuka dan tertinggal di regex? seperti "90 43 ...."
Nilesh

kamu, saya telah memperbarui jawaban saya
Máté Juhász

Saya senang itu berhasil! tolong pertimbangkan menerima jika Anda merasa itu menyelesaikan masalah Anda ( superuser.com/help/someone-answers ).
Máté Juhász
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.