Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Fungsi Regex Look Behind dalam JavaScript?

Bagaimana untuk Mencapai Fungsi Regex Look Behind dalam JavaScript?

DDD
DDDasal
2024-11-13 12:41:02642semak imbas

How to Achieve Regex Lookbehind Functionality in JavaScript?

Regex Look Behind Alternative dalam JavaScript

Masalah:

JavaScript tidak menawarkan kaedah asli untuk melihat regex di belakang. Akibatnya, ungkapan biasa berikut, yang berfungsi dengan berkesan dalam pelaksanaan lain, gagal dalam JavaScript:

(?<!filename)\.js$

Rex reges ini bertujuan untuk memadankan sambungan ".js" di hujung rentetan, tetapi hanya jika ia adalah tidak didahului oleh "nama fail.js."

Penyelesaian:

Satu pendekatan untuk mensimulasikan pandangan regex di belakang dalam JavaScript melibatkan penggunaan fungsi pembantu. Walau bagaimanapun, regex alternatif yang lebih mudah mencapai hasil yang diingini:

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

Penjelasan:

regex ini menggunakan pandangan negatif ke hadapan untuk mengesahkan bahawa setiap aksara dalam rentetan melakukan tidak sepadan dengan ungkapan "nama fail.js" diikuti dengan penghujung rentetan. Hanya selepas itu watak itu boleh sepadan dengan regex. Di bawah ialah pecahan regex:

^                 # Start of string
(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename.js    # filename.js
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character
)*                # Repeat as needed
.js              # Match .js
$                 # End of string

Penyelesaian Diperbaiki:

Kaedah yang lebih cekap untuk mencapai hasil yang sama ialah menggunakan regex berikut:

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

Reteks ini menegaskan bahawa keseluruhan rentetan tidak boleh mengandungi "nama fail.js" dan seterusnya sepadan dengan mana-mana rentetan yang berakhir dengan ".js."

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi Regex Look Behind dalam 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