Javascript

【Javascript】iPhoneのJavascriptで正しく日付文字列をパース出来ない問題。

PCでは出来てもiPhoneだと正しくパースしてくれないとかあるのね。

// PCだと問題ないけどiPhoneだとNaNになる。
var date = '2014-08-08T21:24:15+0900';
new Date(date);

なのでこうしてやる。

var date = '2014-08-08T21:24:15+0900';
var dateArr = date.split(/[- :T\+]/);
new Date(dateArr[0], dateArr[1]-1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);

これで完璧。

 

【Javascript】でPHPのhtmlspecialchars()を実装する。

stackさんにていいやつを発見。

http://stackoverflow.com/questions/1787322/htmlspecialchars-equivalent-in-javascript

function escapeHtml(text) {
  var map = {
    '&': '&',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#039;'
  };

  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}

h()とかで定義しておくと便利。

 

【Angular.js/holder.js】ng-viewなどで読み込んだテンプレート内のダミー画像を正常にレンダリングさせる。

holder.jsはお手軽にダミー画像を配置できるのでワイヤー作成時など本当に重宝している。
しかしそのまんまAngularJSと組み合わせただけだと、holder.jsのスクリプトが正常に作動してくれないことが判明。

下記のようなディレクティブを定義してやることで正常にレンダリングすることができた。

app.directive('holderFix', function () {
    return {
        link: function (scope, element, attrs) {
            Holder.run({ images: element[0], nocss: true });
        }
    };
});

これを下記のようにして使えばOK。

<img data-src="holder.js/300x200" holder-fix>

 

【Javascript/Css】bootstrap3をホスティングしてくれているサービス。

http://www.bootstrapcdn.com/

ありがたや。

 

【Webサービス】ブックマークレットを作った。

自分が普段良く使うやつとかあったら便利だなと思った機能を作ってまとめてみた

公式HPは下記。

http://xn--lvq.net/

俺.net。

随時、機能追加予定。

 

【Javascript】指定した年月の月末日を取得する。

メモ。

JavascriptのDateクラスは日付に0を渡すと前月の最終日を返してくれる。
その特性を使用して欲しい月の最終日を取得することが可能。

// 2月の最終日が知りたい場合
new Date(2014, 2, 0).getDate();
 > 28

こんな感じで使用可能。

 

【Javascript】Dateクラスのインスタンスを生成する際の注意。

追記)
原因が判明。
Javascriptの月は0~11で定義されているので引数で渡した場合は指定したい月から-1してやらないといけなかった模様。
文字列で渡せば1~12で指定できるので問題を回避できていただけだったんだね。

———————————————————————-

new Date()する時に日付をカンマ区切りで渡す際、文字列として渡してやらないと正常に認識してくれないことを今更知った。

下記のような感じ。

// 下記の渡し方だとおかしくなる。
new Date(2014, 7, 24);

// 正しくはこうする
new Date('2014, 7, 24');

これ以外と盲点かも。

カンマで区切られてたら引数だと思うやん。。。

 

【Javascript】URLに含まれるクエリストリングから指定した名前の値を取得する。

stack様で神コードをみつけたのでペタリ。

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

使い方は簡単。上記関数に取得したいパラメーター名を渡せばOK。

元記事は下記。

http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript