【Javascript】文字列「年月日時分秒+乱数+.html」から文字列「年-月-日 時:分:秒」を生成する

  • このエントリーをはてなブックマークに追加

正規表現を使い「年月日時分秒+乱数+.html」をそれぞれキャプチャーして、文字列「年-月-日 時:分:秒」を生成した。



乱数+.htmlはキャプチャーグループ(.+$)で取得しているが、非キャプチャーグループでも問題ない。


var page_name="2014042922371346828.html";
var reg = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(.+$)/;

//matchからreplaceに変更
//年-月-日 時:分:秒
console.log(page_name.replace(reg, "$1-$2-$3 $4:$5:$6"));//2014-04-29 22:37:13

/*
console.log(page_name.match(reg)[1]+"-"+//年
            page_name.match(reg)[2]+"-"+//月
            page_name.match(reg)[3]+" "+//日
            page_name.match(reg)[4]+":"+//時
            page_name.match(reg)[5]+":"+//分
            page_name.match(reg)[6]);   //秒
*/

使用例
自動生成されたwebページの名前が「年月日時分秒+乱数+.html」の場合、このページの名前を取得して文字列「年-月-日 時:分:秒」を生成して出力した。


var page_name=getNameFromURL();
var reg = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(.+$)/;

$("#output").html(page_name.replace(reg, "$1-$2-$3 $4:$5:$6"));//2014-04-29 22:37:13

/*
$("#output").html(page_name.match(reg)[1]+"-"+//年
                  page_name.match(reg)[2]+"-"+//月
                  page_name.match(reg)[3]+" "+//日
                  page_name.match(reg)[4]+":"+//時
                  page_name.match(reg)[5]+":"+//分
                  page_name.match(reg)[6]);   //秒
*/

//ページの名前を取得
function getNameFromURL(){
 var name=basename(location.href);
 return name;
}

function basename(path, suffix) {
  //  discuss at: http://phpjs.org/functions/basename/
  // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // improved by: Ash Searle (http://hexmen.com/blog/)
  // improved by: Lincoln Ramsay
  // improved by: djmix
  // improved by: Dmitry Gorelenkov
  //   example 1: basename('/www/site/home.htm', '.htm');
  //   returns 1: 'home'
  //   example 2: basename('ecra.php?p=1');
  //   returns 2: 'ecra.php?p=1'
  //   example 3: basename('/some/path/');
  //   returns 3: 'path'
  //   example 4: basename('/some/path_ext.ext/','.ext');
  //   returns 4: 'path_ext'

  var b = path;
  var lastChar = b.charAt(b.length - 1);

  if (lastChar === '/' || lastChar === '\\') {
    b = b.slice(0, -1);
  }

  b = b.replace(/^.*[\/\\]/g, '');

  if (typeof suffix === 'string' && b.substr(b.length - suffix.length) == suffix) {
    b = b.substr(0, b.length - suffix.length);
  }

  return b;
}

参考
PHP’s basename in JavaScript

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*