• ベストアンサー

Javascriptのエレガントな書き方。

javascriptで 次のような関数を作りたいのですが、エレガントに行う方法が知りたいです。 引数で数値0ならば、 0001という文字列 250なら 0250 12345なら 12345と文字列を返すものです。 また、皆さんのJavascript攻略方法も知りたいです。 最近プロトタイプとかいう言葉が出てきて、正直?状態です。

質問者が選んだベストアンサー

  • ベストアンサー
  • ESate
  • ベストアンサー率64% (11/17)
回答No.3

function ntos(n){ return (String(n).length > 4) ? n : ('0000'+n).substr(String(n).length); } 数字と0の数を修正することで容易に好きな桁に対応させられる。 >また、皆さんのJavascript攻略方法も知りたいです。 こういうのはアンケートでやったほうがいいかと

その他の回答 (3)

回答No.4

No1ですがNo2さんへ >>これだけ規則が無いですが >4桁以下は4桁に揃える物だと思われる 0を4桁にして0001にはならない、かつ誤植かどうか分からないので 一応ifをつけてみたのですが。 まぁたぶん誤植でしょうけど。

noname#39970
noname#39970
回答No.2

No1→ >これだけ規則が無いですが 4桁以下は4桁に揃える物だと思われる

回答No.1

エレガントかどうかは知りませんが私は以下を使ってます。 function NumToStr(n){ str = (n<10)?("000"+n):((n<100)?("00"+n):((n<1000)?("0"+n):(""+n))); if(n==0) str = "0001"; //これだけ規則が無いですが誤植ですか? return str; } javascript攻略法...。 何事も試してみる。 で、うまく動けばよし。動かなければ修正。 Webの文献は自分の環境だけで書いてる場合があるので実際に試してみないと分からないし。

関連するQ&A

  • 「頑張れ」に替わるエレガントな言葉はないでしょうか

    「頑張れ」などの行動を促す類いの言葉は「うつ病」者や精神障害者にはグサリと心臓に突き刺さるのだそうですが…… 健常者でもスポーツ選手などには、頑張って頑張ってこれ以上頑張れないくらいに頑張っている状態でファンの人から「頑張って!」と云われるのは非常に辛いと云っています。やはり、言葉が突き刺さってくる感覚があるのでしょう。メンタルトレーニングを採りいれた練習方法では「頑張る」感覚はないと思われますが…… 日本人が何ともお手軽に使いがちな凶器「頑張れ」に替わるエレガントな言葉はないでしょうかね。

  • excelで日付数値を日付文字列に変換する

    =datevalue("2023/1/1") とすると数値44927となります。 それでは数値44927を引数として、文字列"2023/1/1"を取得する関数? 同様に=timevalue("15:0:0") は0.625です。逆に"15:0:0"を得る関数?

  • JavaScript で実体参照を扱うには

    JavaScript 上でたとえば XHTML 上の &nbsp; を含む文字列を生成したい場合、どうコーディングすればよいのでしょうか。 数値参照の場合は String.fromCharCode() などを使用すればコード数値を文字化できるのですが、文字列 "nbsp" あるいは "&nbsp;" を一文字に変換する方法がわかりません。Document.createEntityReference 辺りかなとも思ったのですが、パラメータに何を指定してよいのかよくわかりません。 現在は XHTML 本文にこれを含むテキストを書いておいて、それを一旦 JavaScript で読み込んで連想配列等にして活用する形で使っているのですが、もう少し直截的に生成したいと思っています。 よろしくお願いいたします。

  • printf関数の引数は文字例と決まっているからです。

    printf関数は文字列しか引数として受け取りません。 printf("文字列"); では数値を引数にしたらどうでしょう? #include <stdio.h> #main () {     printf(1);     return 0; } これはコンパイルエラーになります。printf関数の引数は文字列と決まっているからです。 この文章について質問です。 Q.なぜ上の「文字数」はダブルクォーテーションで囲まれているのに、下の「1」にダブルクォーテーションはないのでしょうか? Q.文書を見る限り、Cでは文字列と数値は区別されているように見えますが、なぜでしょうか?

  • javascriptでEUCのエンコード

    検索エンジン用のエンコードした文字列をjavascriptで処理しようとしています。 encodeURIComponent で処理するとUTF-8でエンコードされてしまい、思うような結果が得られません。 EUCでエンコードされた結果を得る方法は無いでしょうか? ネットで探してみたのですがjavascriptだけで解決する方法を見つけられずに困っています。 javascript内で自作の関数を作ってもいいのですが、何かヒントがあればと思います。 よろしくお願いします。

  • Javascript+PHPで変数を受け渡したい

    PHP変数の文字列データを、 <a href ="Javascript:xxx($data)">として、関数を実行させたときに、関数側での function xxx(data){ --データで指定されたhtmlへ移動したい } という方法は、実現できないのでしょうか。 Javascriptのエラーでデータの受け渡しができていないみたいなのですが、わかる方教えてください。

  • Javascript外部ファイルが読み込めません

    外部.js ファイルに記述した関数の呼び出しが、 Windows + IE6 だとできるのですが、 Windows + NN7 Mac + IE5 だとできません。 エラーメッセージすら出ず、無反応の状態です。 もちろん、ブラウザの設定ではJavascriptはONです。 呼び出し方は <a href="javascript:関数名('引数');"></a> <a href="#" onClick="関数名('引数');"></a> の両方を試しましたが、 どちらも Windows + IE でしか動きません。 どうすれば正常に動くようにできるでしょうか? とても困っています。 どなたかよろしくお願いいたします!

  • JavaScriptからCGI

    JavaScriptの関数内でCGIを呼び出す際に、 以下のようにしています。 location.href = "result.cgi?MSG="+Message+"&FLAG="+Flag; しかし、Messageという変数に「=」という文字 が含まれているためうまくCGIにわたってくれません。 こちらからCGIにわたす際にきちんと引数を わたすためにはどうしたらよいのでしょうか? 教えてください。

    • ベストアンサー
    • CGI
  • どなたか、教えていただけませんでしょうか(C言語)?

    皆様のお知恵を拝借したく思いまして 投稿させていただきました C言語についての質問なのですが (1)文字配列の引数を一度mainからプロトタイプ関数へ渡し 関数で宣言して表示。 (2)さらにその関数内で、値を変更して mainで表示する 方法を教えていただきたく思いますので、宜しくお願い致します

  • 文字列変数内のスペースを削除するJavaScript関数

    JavaScriptの関数で文字列変数ないにある全ての スペース文字を削除する関数はないでしょうか?