アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

javascript numeric comma処理:品質面で安心できる

数値をコンマ区切りで表現するのは、基本中の基本です。

1234567890 => 1,234,567,890

サーバーサイドでは、数値にカンマ区切りを挿入してくれる便利な関数が標準で用意されています。
phpの場合:number_format( $num );
C#の場合: (1234567890).ToString("#,##0");

クライアントサイドであるブラウザ側では、
サーバーサイドで生成されたコンマ区切り文字列をそのまま表示するのが一番簡単です。

なぜなら、javascriptでは標準でコンマ区切り書式にする関数が存在しません。

また、以前CSSで数値を表示上カンマとして表示する仕組みも検討されていたようですが、一向に進んでいないようです。


javascriptで数値をコンマ区切りする方法 javascript number comma


javascript toLocaleString()

var n = 1234567890;n.toLocaleString();

safari系(ipad/iphone/osx)ではうまくいきません。safari系無視でOKな要件の場合、もっとも簡単な方法です。

javascript 正規表現でコンマ区切り

function numberWithCommas(x) {
var parts = x.toString().split(".");
return parts[0].replace(/\B(?=(\d{3})+(?=$))/g, ",") + (parts[1] ? "." + parts[1] : "");
}

正規表現で区切りを挿入するパターン、ループしてカンマを入れるパターンなどがあります。
これらのデメリットは、すべて自作のため、品質の問題が付きまといます。

javascript 有名な外部ライブラリを利用する
現時点では、この有名所の外部ライブラリを利用するのがオススメです。
その理由は、いろいろな方がつかっているので、関数の信頼性が高いことにあります。

オススメはd3.format
公式サイト: http://d3js.org/

スクリプトの読み込み(CDNパターン)
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

カンマ区切りする方法
var num1 = d3.format(",")(1234567890);
var num2 = d3.format(",.2f")(1234567890); // 小数2桁

詳しい書式は、以下を参照してください。
https://github.com/mbostock/d3/wiki/Formatting

D3はデータを可視化する(グラフなど)ためのエンジン的なライブラリです。
利用者もたくさんいるので品質面で安心です。

d3.timeという日時系書式も存在します。
posted by scripts at 09:30 | Comment(0) | TrackBack(0) | javascript

php error をconsoleに出力

コマンドラインからphpを実行させた場合、デフォルト設定ではエラー発生した際、なにも出力されない
$ php a.php
$
という結果になります。

phpのソースをいじらずに、エラーになるかどうか確認したい場合はlintを使います
$ php -l a.php
Errors parsing a.php

正常時:
No syntax errors detected in a.php

残念ながら、エラーがあるよ、ないよというレベルでしか確認できません。

php.iniのdisplay_errorsを1にすることで標準出力、display_errors=2とすることで標準エラー出力に出力させることができます。

ただ、php.iniは本番環境でも参照されるものなので、単純な確認で変更したくありません。

php error consoleに簡単出力


phpコマンドには、-dオプションが存在します。

--define foo[=bar]
-d foo[=bar] Define INI entry foo with value bar

この-define/-dを使うことで、いまから実行するphpのみエラーレベルを指定&console出力させることが可能になります。

全部のエラーをconsoleに出力させるにはdisplay_errors=1とerror_reporting= 2147483647を指定します。
$ php -d display_errors=1 -d error_reporting=2147483647 a.php
Parse error: parse error, expecting `"variable (T_VARIABLE)"' or `"${ (T_DOLLAR_OPEN_CURLY_BRACES)"' or `"{$ (T_CURLY_OPEN)"' in a.php

これにより、ソースはいじらずに、動作確認で検証したいときのみ、consoleにエラーを表示できるようになります。

aliasを設定するとさらに便利になります


毎回毎回打ち込むのは、あまりにも面倒なので、例えばaliasをつかって定義すると簡単になります。
.cshrc/.bashrcなどに以下を追加
.shrc/.bashrc
alias phpconsole='php -d display_errors=1 -d error_reporting=2147483647'

.cshrc
alias phpconsole php -d display_errors=1 -d error_reporting=2147483647


$ phpconsole a.php
と打ち込むとaliasで展開され
$ php -d display_errors=1 -d error_reporting=2147483647 a.php
が実行されます。

posted by scripts at 13:45 | Comment(0) | TrackBack(0) | php
最新記事
最新コメント
タグクラウド
カテゴリアーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。