Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menguatkuasakan Had Panjang Aksara dalam Ungkapan Biasa?

Bagaimanakah Saya Boleh Menguatkuasakan Had Panjang Aksara dalam Ungkapan Biasa?

Patricia Arquette
Lepaskan: 2025-01-26 19:56:10
asal
358 orang telah melayarinya

How Can I Enforce Character Length Limits in Regular Expressions?

menguatkuasakan panjang aksara dalam ekspresi biasa

Ekspresi biasa sering memerlukan sekatan panjang. Tanpa mereka, regex akan memadankan rentetan panjang apa pun. Walaupun kuantum kelihatan seperti penyelesaian (mis.,

), mereka tidak berfungsi secara langsung pada keseluruhan rentetan. Ini kerana kuantifi hanya menjejaskan elemen yang terdahulu. {1,15}

Sebagai contoh, percubaan ini gagal:

<code class="language-javascript">var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,?()""']*${1,15}/ // Error!</code>
Salin selepas log masuk

Penyelesaian Lookahead

Pendekatan yang betul menggunakan pernyataan Lookahead yang positif:

<code class="language-javascript">^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Salin selepas log masuk

Memahami Lookahead

adalah kunci. Lookahead positif ini menegaskan bahawa keseluruhan rentetan (dari awal (?=.{1,15}$) hingga akhir ^) mengandungi antara 1 dan 15 aksara ($). Ia .{1,15} tidak menggunakan mana -mana aksara; Ia hanya memeriksa keadaan. Selebihnya regex kemudian sepadan dengan aksara yang dibenarkan dalam kekangan panjang itu. [a-zA-Z0-9]*[^$%^&*;:,?()""']*$

Mengendalikan Newlines

Jika rentetan anda mungkin termasuk aksara baru, gunakan kelas watak yang lebih mantap untuk memadankan mana -mana watak, termasuk garis baru:

<code class="language-javascript">^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Salin selepas log masuk

sepadan dengan mana-mana Whitespace atau White-Whitespace Watak. Ini memastikan pemeriksaan panjang berfungsi dengan betul walaupun dengan input multiline. Ini menyediakan kaedah yang boleh dipercayai untuk menguatkuasakan had panjang aksara dalam ungkapan biasa. [sS]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguatkuasakan Had Panjang Aksara dalam Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan