Rumah >hujung hadapan web >tutorial js >Bagaimanakah Lookaheads Boleh Membantu dalam Mengehadkan Panjang Aksara dalam Regex?

Bagaimanakah Lookaheads Boleh Membantu dalam Mengehadkan Panjang Aksara dalam Regex?

Barbara Streisand
Barbara Streisandasal
2024-11-17 12:31:02589semak imbas

How Can Lookaheads Help in Limiting Character Length in Regex?

Menggunakan Lookaheads untuk Mengehadkan Panjang Aksara dalam Ungkapan Biasa

Apabila bekerja dengan ungkapan biasa, selalunya perlu mengehadkan bilangan aksara yang sepadan corak tertentu. Walau bagaimanapun, percubaan untuk menggunakan pengkuantiti pada sauh, seperti yang dilihat dalam contoh berikut, boleh membawa kepada ralat:

var test =  /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()""']*${1,15}/    // Uncaught SyntaxError: Invalid regular expression

Untuk mengatasi had ini, kita boleh menggunakan pandangan yang berlabuh pada permulaan rentetan input.

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

Pandangan ke hadapan ini memastikan bahawa aksara seterusnya memenuhi syarat berikut:

  • Ia sepadan dengan corak yang ditentukan dalam kelas aksara [a-zA-Z0-9] 1.
  • Panjangnya antara 1 dan 15 aksara, seperti yang ditentukan oleh pengkuantiti {1,15}.
  • Mereka diikuti oleh penghujung rentetan, seperti yang diwakili oleh tanda dolar $ anchor.

Dengan menggunakan pendekatan ini, kami secara berkesan mengehadkan panjang keseluruhan rentetan input kepada 15 aksara sambil masih membenarkan yang ditentukan corak untuk dipadankan dalam had tersebut.

Nota Penting

  • Apabila menggunakan kaedah ini, ingat untuk menggunakan "kelas aksara" dan bukannya "kumpulan" untuk pengkuantiti.
  • Lookaheads ialah penegasan lebar sifar, bermakna ia tidak menggunakan aksara tetapi masih menyemak padanan.
  • Jika rentetan input boleh mengandungi jujukan baris baharu, gunakan binaan mudah alih [sS] dan bukannya [sS]* untuk memadankan mana-mana watak, termasuk baris baharu.

  1. $%^&*;:,<>()?""'

Atas ialah kandungan terperinci Bagaimanakah Lookaheads Boleh Membantu dalam Mengehadkan Panjang Aksara dalam Regex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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