Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengehadkan Panjang Aksara dalam Ungkapan Biasa?
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>
Untuk mengehadkan panjang aksara kepada 15, anda cuba mengubah suai ungkapan sebagai:
<code>var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*${1,15}/</code>
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>
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:
[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. (?=.{1,15}$)
Gunakan penambat $
untuk menegaskan bahawa bilangan aksara yang ditentukan mesti berada di hujung rentetan. 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>
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!