2010年02月10日
【JavaScript】0埋めしたい 数値の0パディング
1なら01、15なら15のようにJavaScriptで0埋めしたい場合。
C#だったら、PadLeft(totalWidth,paddingChar) で
PadLeft(2,'0')
のようにすればいいけど、JavaScriptとなると何だか面倒臭いな~
と思っていたら、よいサイトがありました。
PCソフト備忘録
上記の例なら
("0" + "数値").slice(-2)
で簡単に0埋めができてしまいます!
アラ、便利。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

C#だったら、PadLeft(totalWidth,paddingChar) で
PadLeft(2,'0')
のようにすればいいけど、JavaScriptとなると何だか面倒臭いな~
と思っていたら、よいサイトがありました。
PCソフト備忘録
上記の例なら
("0" + "数値").slice(-2)
で簡単に0埋めができてしまいます!
アラ、便利。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

タグ :JavaScript
2009年11月17日
JavaScriptのonchange
前使ってたノートに走り書きしてあったもの。
JavaScriptのonchange(テキストボックスなど)は
「内容に変更があったら」ではなく、
「内容に変更があったことが確定したら」イベント発生となる。
よって、文字を打ち込んだだけではイベントは発生せず、フォーカスが移動して
初めて「確定」となり、イベントが発生する。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
JavaScriptのonchange(テキストボックスなど)は
「内容に変更があったら」ではなく、
「内容に変更があったことが確定したら」イベント発生となる。
よって、文字を打ち込んだだけではイベントは発生せず、フォーカスが移動して
初めて「確定」となり、イベントが発生する。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

2009年10月05日
【JavaScript】不正な数値かチェックする
Number.NaN
数値ではないこと(Not a Number)を示す特別な値。
比較演算子が使えないので、Number.NaNであるかどうかはisNaN()で判断する。
isNaN(arg1)
arg1がNumber.NaNであるかを判断する(is Not a Number)
数値として判断できないときに「true」
数値として判断できるときに「false」
月(1~12)の入力が正しいか
※タグの半角「<」「>」は表示上、全角に「<」「>」になっている。
<html>
<head>
<title>テスト</title>
<script type="text/javascript">
<!--
function IsMonth()
{
var objForm = document.forms[0];
var str = objForm.textbox1.value;
//parseIntは第2引数で10進数の指定をしないと「08」「09」は0になる!
var month = parseInt(str,10);
if( isNaN( month ) )
{
alert('数値じゃない\n'+'str='+ str + ' , '+'month='+month);
return;
}
if( month < 1 || 12 < month )
{
alert('1~12じゃない\n'+'str='+ str + ' , '+'month='+month );
return;
}
alert(month+'月');
}
// -->
</script>
</head>
<body>
<form>
<input type="text" name="textbox1" size="20" style="ime-mode:disabled" maxlength=2 />
<input type="button" value="OK" onclick="IsMonth()">
</form>
</body>
</html>
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
数値ではないこと(Not a Number)を示す特別な値。
比較演算子が使えないので、Number.NaNであるかどうかはisNaN()で判断する。
isNaN(arg1)
arg1がNumber.NaNであるかを判断する(is Not a Number)
数値として判断できないときに「true」
数値として判断できるときに「false」
月(1~12)の入力が正しいか
※タグの半角「<」「>」は表示上、全角に「<」「>」になっている。
<html>
<head>
<title>テスト</title>
<script type="text/javascript">
<!--
function IsMonth()
{
var objForm = document.forms[0];
var str = objForm.textbox1.value;
//parseIntは第2引数で10進数の指定をしないと「08」「09」は0になる!
var month = parseInt(str,10);
if( isNaN( month ) )
{
alert('数値じゃない\n'+'str='+ str + ' , '+'month='+month);
return;
}
if( month < 1 || 12 < month )
{
alert('1~12じゃない\n'+'str='+ str + ' , '+'month='+month );
return;
}
alert(month+'月');
}
// -->
</script>
</head>
<body>
<form>
<input type="text" name="textbox1" size="20" style="ime-mode:disabled" maxlength=2 />
<input type="button" value="OK" onclick="IsMonth()">
</form>
</body>
</html>
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m

タグ :JavaScriptisNaN
2009年09月14日
【Web】JavaScript 半角数字のみ入力させる
Webアプリケーションの開発でブラウザはInternet Exploreを使用してるとします。
あるテキストボックスに数字しか入力できないようにしてほしいということで、
ネットですぐに調べればサンプルソースがたくさん見つかります。
function NumOnlyOK()
{
var str = String.fromCharCode(event.keyCode);
if("1234567890\b".indexOf(str, 0) < 0)
{
return false;
}
return true;
}
<input type="text" name="textbox" size="20" onkeyDown="return NumOnly()" style="ime-mode:disabled" />
こういうのが多いのですが、これって
テンキーからの数字入力が出来なくないですか?
こういうソースを見たことがあります。
function txt_keydown()
{
if ( event.keyCode==8 || ←バックスペース
event.keyCode==9 || ←タブキー
event.keyCode==46 || ←deleteキー
(37<=event.keyCode && event.keyCode<=40) || ←矢印キー
event.keyCode==189 || ←マイナス「-」
event.keyCode==109 || ←テンキーのマイナス「-」
//数字
(48<=event.keyCode && event.keyCode<=57) || ←テンキーじゃない方の数字
(96<=event.keyCode && event.keyCode<=105) ←テンキーの数字
)
{
return true;
}
return false;
}
これなら、テンキーからも数字が入力できています。
あくまでIEですけど。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
あるテキストボックスに数字しか入力できないようにしてほしいということで、
ネットですぐに調べればサンプルソースがたくさん見つかります。
function NumOnlyOK()
{
var str = String.fromCharCode(event.keyCode);
if("1234567890\b".indexOf(str, 0) < 0)
{
return false;
}
return true;
}
<input type="text" name="textbox" size="20" onkeyDown="return NumOnly()" style="ime-mode:disabled" />
こういうのが多いのですが、これって
テンキーからの数字入力が出来なくないですか?
こういうソースを見たことがあります。
function txt_keydown()
{
if ( event.keyCode==8 || ←バックスペース
event.keyCode==9 || ←タブキー
event.keyCode==46 || ←deleteキー
(37<=event.keyCode && event.keyCode<=40) || ←矢印キー
event.keyCode==189 || ←マイナス「-」
event.keyCode==109 || ←テンキーのマイナス「-」
//数字
(48<=event.keyCode && event.keyCode<=57) || ←テンキーじゃない方の数字
(96<=event.keyCode && event.keyCode<=105) ←テンキーの数字
)
{
return true;
}
return false;
}
これなら、テンキーからも数字が入力できています。
あくまでIEですけど。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m

タグ :JavaScript
2009年08月20日
【Web】JavaScriptのオーバーロード
Web開発開発にまだ慣れてない頃、
C#やJavaの感覚でコーディングしたら
思ったとおり動かなくて。
function Test (arg1)
{
処理1
}
function Test (arg1,arg2)
{
処理2
}
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
}
としたら、処理1が2回実行されてしまう。
arg2はとりあえず無視されるらしい。
つまり
JavaScriptではオーバーロードはできない。
手っ取り早いのは
メソッド名(ファンクション名?)を違うものにする。(雑っ!)
もっとちゃんとする場合
オーバーロードちっくにコーディングする。
JavaScriptにはargumentsというオブジェクトがあって、
これで関数に渡された引数の数をチェックできるのでそれを利用して、
function Test (arg1,arg2)
{
if (arguments.length == 1)
{
//引数が1つの場合
処理1
}
else if (arguments.length == 2)
{
//引数が2つの場合
処理2
}
}
これだと、引数をもう1つ増やしたいと思ったら、
function Test (arg1,arg2,arg3)
と修正して、引数が3つの場合の処理を加え、
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
Test (arg1,arg2,arg3); ←これを追加
}
とすれば、処理1~処理3が実行される。
理屈はわかったので
あとは開発者の好みで美しいコーディングすればよいと。

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
C#やJavaの感覚でコーディングしたら
思ったとおり動かなくて。
function Test (arg1)
{
処理1
}
function Test (arg1,arg2)
{
処理2
}
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
}
としたら、処理1が2回実行されてしまう。
arg2はとりあえず無視されるらしい。
つまり
JavaScriptではオーバーロードはできない。
手っ取り早いのは
メソッド名(ファンクション名?)を違うものにする。(雑っ!)
もっとちゃんとする場合
オーバーロードちっくにコーディングする。
JavaScriptにはargumentsというオブジェクトがあって、
これで関数に渡された引数の数をチェックできるのでそれを利用して、
function Test (arg1,arg2)
{
if (arguments.length == 1)
{
//引数が1つの場合
処理1
}
else if (arguments.length == 2)
{
//引数が2つの場合
処理2
}
}
これだと、引数をもう1つ増やしたいと思ったら、
function Test (arg1,arg2,arg3)
と修正して、引数が3つの場合の処理を加え、
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
Test (arg1,arg2,arg3); ←これを追加
}
とすれば、処理1~処理3が実行される。
理屈はわかったので
あとは開発者の好みで美しいコーディングすればよいと。

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
