Saya menggunakan plugin validasi jQuery . Barang bagus! Saya ingin memigrasikan solusi ASP.NET saya yang ada untuk menggunakan jQuery alih-alih validator ASP.NET. Saya kehilangan pengganti untuk validator ekspresi reguler . Saya ingin dapat melakukan sesuatu seperti ini:
$("Textbox").rules("add", { regularExpression: "^[a-zA-Z'.\s]{1,40}$" })
Bagaimana cara menambahkan aturan khusus untuk mencapai ini?
jquery
regex
jquery-validate
PeterFromCologne
sumber
sumber
Jawaban:
Berkat jawaban redsquare saya menambahkan metode seperti ini:
sekarang yang perlu Anda lakukan untuk memvalidasi terhadap regex apa pun adalah ini:
Selain itu, sepertinya ada file yang disebut metode-tambahan.js yang berisi metode "pola", yang dapat berupa RegExp ketika dibuat menggunakan metode tanpa tanda kutip.
Edit
The
pattern
Fungsi sekarang cara yang lebih disukai untuk melakukan hal ini, membuat contoh:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js
sumber
Anda dapat menggunakan addMethod ()
misalnya
artikel bagus di sini https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/
sumber
Saya mengalami beberapa masalah dalam mengumpulkan semua bagian untuk melakukan validator ekspresi reguler jQuery, tapi saya berhasil ... Ini adalah contoh kerja yang lengkap. Ini menggunakan plugin 'Validasi' yang dapat ditemukan di Plugin Validasi jQuery
sumber
Tidak ada alasan untuk mendefinisikan regex sebagai string.
dan
lebih baik begini, bukan?
sumber
var re = new RegExp(regexp);
fungsiMemperluas jawaban PeterTheNiceGuy sedikit:
Ini akan memungkinkan Anda untuk melewatkan objek regex ke aturan.
Mengatur ulang
lastIndex
properti diperlukan ketikag
-flag diatur padaRegExp
objek. Kalau tidak, itu akan mulai memvalidasi dari posisi pertandingan terakhir dengan regex itu, bahkan jika string subjek berbeda.Beberapa ide lain yang saya miliki adalah untuk memungkinkan Anda menggunakan array dari regex, dan aturan lain untuk negasi dari regex:
Tetapi menerapkan itu mungkin terlalu banyak.
sumber
Seperti yang disebutkan pada dokumentasi addMethod :
Harap dicatat: Meskipun godaan sangat bagus untuk menambahkan metode regex yang memeriksa parameternya terhadap nilai, jauh lebih bersih untuk merangkum ekspresi reguler di dalam metode mereka sendiri. Jika Anda membutuhkan banyak ekspresi yang sedikit berbeda, cobalah untuk mengekstrak parameter umum. Perpustakaan ekspresi reguler: http://regexlib.com/DisplayPatterns.aspx
Jadi ya, Anda harus menambahkan metode untuk setiap ekspresi reguler. Overheadnya minimal, sementara itu memungkinkan Anda untuk memberi nama regex (tidak boleh diremehkan), pesan default (praktis) dan kemampuan untuk menggunakannya kembali di berbagai tempat, tanpa menduplikasi regex itu sendiri berulang-ulang.
sumber
Saya membuatnya bekerja seperti ini:
Pastikan regex berada di antara keduanya
/
:-)sumber
Anda dapat menggunakan yang
pattern
ditentukan dalamadditional-methods.js
file. Perhatikan bahwa file metode-tambahan.js ini harus disertakan setelah dependensi jQuery Validate, maka Anda dapat menggunakannyasumber
Ini adalah kode yang berfungsi.
sumber
kami terutama menggunakan notasi markup dari plugin validasi jquery dan sampel yang diposting tidak bekerja untuk kami, ketika bendera hadir di regex, misalnya
oleh karena itu kami menggunakan cuplikan berikut
Tentu saja sekarang orang dapat menggabungkan kode ini, dengan salah satu di atas juga memungkinkan untuk melewatkan objek RegExp ke dalam plugin, tetapi karena kami tidak membutuhkannya, kami meninggalkan latihan ini untuk pembaca ;-).
PS: ada juga plugin yang dibundel untuk itu, https://github.com/jzaefferer/jquery-validation/blob/master/src/additional/pattern.js
sumber
Ini berhasil bagi saya, menjadi salah satu aturan validasi:
Semoga ini bisa membantu
sumber