タイトルにあるように、「。js」で終わる文字列に一致するが、「-min.js」で終わる文字列を指定すると失敗するJavaScript正規表現の記述方法を理解するのに役立つ人はいますか。
例:
hello.js->一致
hellomin.js->一致
hello-min.js->一致しません
hello-min-hello.js->一致
ありがとう!
タイトルにあるように、「。js」で終わる文字列に一致するが、「-min.js」で終わる文字列を指定すると失敗するJavaScript正規表現の記述方法を理解するのに役立つ人はいますか。
例:
hello.js->一致
hellomin.js->一致
hello-min.js->一致しません
hello-min-hello.js->一致
ありがとう!
ネガティブ先読みを使用する:
(?!-min)[\w-]{4}\.js$
アップデート
.js
これは、 :の前の4文字未満でも機能します。
(?:(?!-min)[\w-]{4}|^[\w-]{1,3})\.js$
前の質問に基づいた疑似反転マッチングを使用します。
^((?!-min\.).)*\.js$
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
おかしいですよね?
@robinCTSの正規表現を拡張して、ファイルパスを複数のドット(たとえば、ファイル名の末尾にバージョン番号)と「.min.js」で終わる文字列と一致させました。
(?:(?!(-|\.)min)[\w\.-]{4}|^[\w\.-]{1,3})\.js$
例: