OR条件
JavaScript
1p1 = /^(?!.*hoge).*$|.css$/;
2if(elem.match(p1)){
|
はOR条件ですよ。
「かつ」ならAND条件にしなければなりません。
AND条件
個人的にはAND条件を一つの正規表現で書くことはお勧めしませんが、
.cssはかならず含まれること
hoge.cssのみを除外。(hoge-test.css、hogehoge.cssなどは許容)
.cssが末尾についてかつhogeを含まないものという条件になります。
いろいろと条件があるようなので、
JavaScript
1'use strict';
2function isCssFileName (fileName) {
3 return /^(?!hoge.css$).*.css$/.test(fileName);
4}
5
6console.log(isCssFileName('hoge.css')); // false
7console.log(isCssFileName('hoge-test.css')); // true
8console.log(isCssFileName('hogehoge.css')); // true
9console.log(isCssFileName('foo.css')); // true
10console.log(isCssFileName('piyo')); // false
11console.log(isCssFileName('.css-piyo')); // false
正規表現を使わないコード
しかし、私があなたなら2回に分けてマッチさせます。
理由は前述のGitHubの記事で述べた通りです。
JavaScript
1'use strict';
2function isCssFileName (fileName) {
3 return fileName !== 'hoge.css' && fileName.endsWith('.css');
4}
5
6console.log(isCssFileName('hoge.css')); // false
7console.log(isCssFileName('hoge-test.css')); // true
8console.log(isCssFileName('hogehoge.css')); // true
9console.log(isCssFileName('foo.css')); // true
10console.log(isCssFileName('piyo')); // false
11console.log(isCssFileName('.css-piyo')); // false
Re: cheche0830 さん