スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バージョン比較するやつ その2

(。ゝω・)ノ*:゚・☆ バージョン表記の文字列から比較するやつ
では比較対象と演算子を一つの文字列に直すのが手間だったから
それぞれ別の引数に取れるようにしたついでに少し書き直した。

// example
versionCompare('1.0.0', '<', '2.1.0');
> true

function versionCompare(){
const [, a, operator, c] = do{
const str = Array.from(arguments).join('');
const str_clean = str.replace(/[^0-9.=!><]/g, '');
str_clean.match(/([0-9.]+)([=!><]+)([0-9.]+)/);
}
if( !a || !operator || !c){
throw new TypeError('invalid argument');
}
// obj化
const [A, B] = [a, c].map( (v)=>{
let [, major, minor, patch] = v.match(/^(\d+)\.(\d+)\.(\d+)$/);
return {major, minor, patch}
});
const result = A.major!==B.major ?
eval(`${A.major}${operator}${B.major};`):
A.minor!==B.minor ?
eval(`${A.minor}${operator}${B.minor};`):
eval(`${A.patch}${operator}${B.patch};`);
return result;
}
関連記事

コメントの投稿

非公開コメント

すポンサードリンク
最新記事
カテゴリ
DN (57)
CSS (2)
いろいろ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。