1

タイトルにあるように、「。js」で終わる文字列に一致するが、「-min.js」で終わる文字列を指定すると失敗するJavaScript正規表現の記述方法を理解するのに役立つ人はいますか。

例:

hello.js->一致

hellomin.js->一致

hello-min.js->一致しません

hello-min-hello.js->一致

ありがとう!

4

5 に答える 5

3

ネガティブ先読みを使用する:

(?!-min)[\w-]{4}\.js$

アップデート

.jsこれは、 :の前の4文字未満でも機能します。

(?:(?!-min)[\w-]{4}|^[\w-]{1,3})\.js$

于 2013-01-28T14:11:37.697 に答える
2

前の質問に基づいた疑似反転マッチングを使用します。

^((?!-min\.).)*\.js$
于 2013-01-28T14:14:58.880 に答える
0

JSはネガティブルックビハインドをサポートしていないので、ネガティブルックアヘッドを使用しましょう!

var str = 'asset/34534534/jquery.test-min.js',
    reversed = str.split('').reverse().join('');

// And now test it
/^sj\.(?!nim-)/.test(reversed); // will give you false if str has min.js at the end

おかしいですよね?

于 2013-01-28T14:13:22.377 に答える
0

@robinCTSの正規表現を拡張して、ファイルパスを複数のドット(たとえば、ファイル名の末尾にバージョン番号)と「.min.js」で終わる文字列と一致させました。

(?:(?!(-|\.)min)[\w\.-]{4}|^[\w\.-]{1,3})\.js$

例:

  • hello.js->一致
  • hellomin.js->一致
  • hellomin-2.4.3.js->一致
  • hello-min-hello.js->一致
  • hello-min.js->一致しません
  • hello.min.js->一致しません
  • hellomin-2.4.3-min.js->一致なし
  • hellomin-2.4.3.min.js->一致しません
于 2015-02-11T07:01:57.843 に答える
-1

ネガティブルックビハインドを使用できます:

(?<!-min)\.js$

于 2013-01-28T14:00:31.793 に答える