正如标题所述:任何人都可以帮我弄清楚如何编写一个JavaScript字符串表达式,该表达式匹配以“.js”结尾的字符串,但在给定以“-min.js”结尾的字符串时失败。 / p>
示例:
hello.js - >匹配
hellomin.js - >匹配
hello-min.js - >没有比赛
hello-min-hello.js - >匹配
谢谢!
答案 0 :(得分:3)
使用否定前瞻:
(?!-min)[\w-]{4}\.js$
<强>更新强>
这也适用于.js
之前少于4个字符:
(?:(?!-min)[\w-]{4}|^[\w-]{1,3})\.js$
答案 1 :(得分:2)
使用基于previous question的伪反转匹配:
^((?!-min\.).)*\.js$
答案 2 :(得分: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
好笑,对吧?
答案 3 :(得分:0)
我扩展了@ robinCTS&#39;正则表达式以匹配具有多个点的文件路径(例如,文件名末尾的版本号)以及以&#34; .min.js&#结尾的字符串34;:
(?:(?!(-|\.)min)[\w\.-]{4}|^[\w\.-]{1,3})\.js$
示例:
答案 4 :(得分:-1)