Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Melaksanakan Penegasan Look Behind dalam Regex JavaScript?

Bagaimana untuk Melaksanakan Penegasan Look Behind dalam Regex JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 17:16:02954semak imbas

How to Implement Lookbehind Assertions in JavaScript Regex?

Javascript Regex: Alternatif untuk Lookbehind Assertions

Pelaksanaan Regex dalam Javascript tidak mempunyai konsep lookbehind assertions. Ini menimbulkan cabaran dalam membina ungkapan biasa yang memerlukan fungsi ini. Nasib baik, terdapat kaedah alternatif untuk mencapai hasil yang serupa.

Pertimbangkan regex berikut:

(?<!filename)\.js$

regex ini sepadan dengan ".js" di hujung rentetan, tidak termasuk "filename.js ." Walau bagaimanapun, tanpa melihat di belakang sokongan dalam Javascript, kami memerlukan alternatif.

Salah satu alternatif sedemikian ialah untuk mengembangkan penegasan lookback ke dalam satu siri semakan eksplisit terhadap setiap aksara dalam rentetan:

^(?:(?!filename\.js$).)*\.js$

Regex ini dipecahkan seperti berikut:

  • ^: Permulaan rentetan
  • (?:...)*: Gelungkan ungkapan berikut untuk setiap aksara
  • (?!filename.js$): Pandangan negatif ke hadapan untuk memastikan aksara seterusnya tidak sepadan " nama fail.js"
  • .: Padankan dengan noktah
  • *: Ulangi padanan tempoh sebagai diperlukan
  • .js: Padankan ".js"
  • $: Tamat rentetan

Sebagai alternatif, penyelesaian yang lebih mudah tersedia:

^(?!.*filename\.js$).*\.js$

Reex ini pada asasnya menyemak bahawa keseluruhan rentetan tidak mengandungi "filename.js" sebelum dipadankan ".js."

Dengan memanfaatkan alternatif ini, kami boleh melaksanakan kefungsian regex sama seperti melihat di belakang pernyataan dalam Javascript.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penegasan Look Behind dalam Regex JavaScript?. 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