Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengehadkan Panjang Aksara dalam Ungkapan Biasa?

Bagaimana untuk Mengehadkan Panjang Aksara dalam Ungkapan Biasa?

DDD
Lepaskan: 2025-01-26 20:14:15
asal
951 orang telah melayarinya

How to Limit the Length of Characters in a Regular Expression?

Kaedah penambahbaikan had panjang aksara ungkapan biasa

Ungkapan biasa asal anda tidak meletakkan had pada panjang aksara:

<code>var test =  /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$/</code>
Salin selepas log masuk

Untuk mengehadkan panjang aksara kepada 15, anda cuba mengubah suai ungkapan sebagai:

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

Ini akan menimbulkan ralat kerana pengkuantiti tidak boleh digunakan terus pada sauh. Cara yang betul untuk mengehadkan panjang rentetan input adalah dengan menggunakan penegasan pandangan pada permulaan:

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

Pernyataan yang memandang ke hadapan ini memastikan bahawa rentetan input sepadan dengan julat aksara yang ditentukan dan panjangnya antara 1 dan 15 aksara, dengan berkesan menguatkuasakan had panjang aksara.

Berbanding dengan menggunakan pengkuantiti terhad pada penghujung (seperti {1,15}), pendekatan pandang ke hadapan membolehkan anda mengehadkan panjang keseluruhan rentetan input. Pengkuantiti digunakan pada subcorak pernyataan pandangan, memastikan ia sepadan dengan bilangan aksara yang diperlukan dari permulaan rentetan.

Berikut ialah beberapa perkara lain yang perlu diberi perhatian:

    Subcorak
  • [a-zA-Z0-9]* sepadan dengan jujukan huruf atau nombor dengan sebarang panjang. Ia bersamaan dengan subcorak (a-z|A-Z|0-9)* yang digunakan dalam ungkapan asal anda.
  • Pernyataan pandangan ke hadapan yang positif (?=.{1,15}$) Gunakan penambat $ untuk menegaskan bahawa bilangan aksara yang ditentukan mesti berada di hujung rentetan.
  • Kaedah ini berfungsi dengan ECMAScript dan perisa ekspresi biasa yang lain, seperti Python. Walau bagaimanapun, dalam Python anda perlu menggunakan A dan Z sauh bukannya ^ dan $.

Selain itu, jika rentetan input anda mungkin mengandungi baris baharu, anda boleh menggunakan [sS] binaan ungkapan biasa aksara arbitrari mudah alih:

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

Ini memastikan bahawa baris baharu turut disertakan dalam had panjang aksara.

Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Panjang Aksara dalam Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan