特定文字~特定文字の間の文字列を切り出す関数
を作ったのでメモ。
function strcut(str, start, end){ var sidx = 0; var eidx = str.length; if (start != ""){ sidx = str.indexOf(start) + start.length; } if (end != ""){ eidx = str.indexOf(end); } if (sidx > eidx){ return ""; } return str.substring(sidx, eidx); }
使い方と結果はこんな感じ。
var str = "/hoge.php?mainichi=everyday"; console.log( strcut(str, "/", ".php") ); // hoge console.log( strcut(str, "", "?") ); // /hoge.php console.log( strcut(str, "mainichi=", "") ); // everyday console.log( strcut(str, ".php", "/") ); // (空文字)
ただし、単純に
「最初に見つかった開始文字列より後」から
「最初に見つかった終了文字列より前」を切り出しているだけなので
データによっては意図した結果にならないことに注意。
// 本当はたぶん「a」を取り出したいやつ var str = "[[[a]]]"; console.log( strcut(str, "[", "]") ); // [[a