ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で正規表現の後読み機能を実現するにはどうすればよいですか?

JavaScript で正規表現の後読み機能を実現するにはどうすればよいですか?

DDD
リリース: 2024-11-13 12:41:02
オリジナル
689 人が閲覧しました

How to Achieve Regex Lookbehind Functionality in JavaScript?

JavaScript の正規表現後読み代替手段

問題:

JavaScript はネイティブ メソッドを提供しません正規表現の後読み用。したがって、他の実装では効果的に機能する次の正規表現は、JavaScript では失敗します。

(?<!filename)\.js$
ログイン後にコピー

この正規表現は、文字列の末尾にある拡張子「.js」と一致することを目的としていますが、それが一致する場合に限ります。が前にない"filename.js."

解決策:

JavaScript で正規表現の後読みをシミュレートする 1 つのアプローチには、ヘルパー関数の使用が含まれます。ただし、より単純な代替正規表現を使用すると、目的の結果が得られます。

^(?:(?!filename.js$).)*.js$
ログイン後にコピー

説明:

この正規表現は、文字列内の各文字が一致することを検証するために否定先読みを使用します。 「filename.js」の後に文字列の末尾が続く式と一致しません。そうすることでのみ、その文字が正規表現と一致することができます。以下は正規表現の内訳です:

^                 # 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
ログイン後にコピー

改善された解決策:

同じ結果を達成するより効率的な方法は、次の正規表現を使用することです:

^(?!.*filename.js$).*\.js$
ログイン後にコピー

この正規表現は、文字列全体に「filename.js」を含めてはいけないことを主張し、その後、任意の文字列に一致します。 「.js」で終わる文字列

以上がJavaScript で正規表現の後読み機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート