タイトルの通りなのですが、あるテキストボックスに数字しか入力できないようにしたいのですが可能でしょうか?また、

「あいうえお 12345 「」:・、¥・」

というような文字列をコピーし、そのテキストボックスにペーストした際にも数字の12345だけが残るといった事も実現したいのですが…

どなたかご存知の方いらっしゃいましたら教えて頂けると幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>英数字



では、こんな感じで

<input type="text" onKeyup="this.value=this.value.replace(/[^0-9a-z]+/i,'')">
    • good
    • 12

英数字の場合は以下のように修正します。



function onlyAlphaNumeric() {
  var k = event.keyCode;
  if ( k == 9 || k == 13 ) return;  //タブ、リターン
  if ( k >= 48 && k <= 57 ) return;  //数値
  if ( k >= 65 && k <= 90 ) return;  //英大文字
  if ( k >= 97 && k <= 122 ) return; //英小文字
  event.returnValue = false; //上記以外はキー入力を取り消す
}
function replaceAlphaNumeric(txt) {
  txt.value = txt.value.replace(/[^\da-z]/gi,"");
}
    • good
    • 2

以下は一例です。



<SCRIPT LANGUAGE="JavaScript">
function onlyNumeric() {
  var k = event.keyCode;
  ( k == 9 || k == 13 || ( k >= 48 && k <= 57 )) return;
  event.returnValue = false;
}
function replaceNum(txt) {
  txt.value = txt.value.replace(/\D/g,"");
}
</SCRIPT>

<INPUT TYPE=TEXT OnKeyPress="onlyNumeric()" OnBlur="replaceNum(this)">

キー入力では数字、TAB、RETURN のみ受け入れます。
但し、コピペされると非数字でも入力されます(キー押下でないため)
フォーカスが移動すると、非数字を削除します。

正規表現の構文は以下の通り。
http://msdn.microsoft.com/ja-jp/library/cc392020 …
    • good
    • 4

たとえば



<input type="text" onKeyup="this.value=this.value.replace(/[^0-9]+/,'')">
    • good
    • 5
この回答へのお礼

すごいです(>_<)ありがとうございます!

ちなみになんですが、数字限定ではなく英数字といった事はできるんでしょうか?

教えて頂いたもののしくみがよくわかっていないド素人ですみません 汗

お礼日時:2008/12/01 15:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QRGB値の3っつの数字に付く単位は?

 よろしくお願いします。
色を表現する方法の一つににRGB値がありますが、
例えば 255-100-20といった3つの数字の組み合わせですが、この数字にはどんな単位が付くのですか?
単位が無いことは無いと思うのですが、RGB値の個々の数字に単位が付いているのを見たことが有りません。省略しているのでしょうか?
 例えば先にあげたRGB値の255の後ろにはどんな単位が
付くのですか?
 ※ちなみRGBが光の三原色のことはわかります。
また数値が大きいほどそれに対応する色がその色に含まれている量が多い事になるのは知っております。

Aベストアンサー

再び失礼します。#1です。
補足します。

階調は、人が見たときの明るさが視覚的に概ね等間隔になるように刻んだものです。

何が言いたいかといいますと、

実際の明るさというか光の強度は等間隔でありません。

ですから、例えば、3階調と4階調との間の光量差と、200階調と201階調との間の光量差は、違います。(前者のほうが光量が小さいです。)
ということで、100階調と200階調では、人間が見た目の明るさでは2倍ぐらいになりますけども、光の実際の量は2倍どころではなく、もっと大きい差になります。

では、その刻みがどういう規則に則っているかというと、これがまた確固たる規則は規定されていなくて、例えば液晶ディスプレイですと、階調電源をいじることにより「ガンマ(γ)」という値を自在に変えられるようになっています。

以上、長くなりましたが
階調の値と言うのは物理量ではなくて、ある人間がある条件で決めた勝手な数値ということです。

Qテキストボックスの値が数字であるか

どうかを判断する手段を教えてください。

Aベストアンサー

//色々やり方はあると思いますが、1つの方法
if(isNaN(テキストボックス.value)){
alert("数字じゃないです");
} else {
alert("数字です");
}

Q数字だけを入れれば良かったのに単位まで入れてしまい、困っています。

本当は半角で数字だけを入れないといけないのに「1冊」「2頁」などのようにひとつのセルに数字と単位を一緒に入れてしまいました。これらを数字だけにできないでしょうか?「1冊」を「1」とする方法は無いでしょうか?しかも数字を半角で入れないといけないに全角で入れてしまいました。なんとか短時間で変換する方法がないでしょうか?今からやり直しても時間が間に合いそうに無いので、少しでも早くできる方法を教えて下さい。よろしくお願いいたします。

Aベストアンサー

Ctrl+Hで、検索する文字列に「冊」を入力し、置換後の文字列には何も入力せずに全置換すれば大丈夫だと思います。
試してみましたが、全角の数字も自動的に半角になってくれました。
但し、セルの書式は標準になっている必要があります。

Qプルダウン Or コンボボックスを選択したら、テキストボックスを入力不可にさせる方法 

フォーム制御として、JavaScriptを使用して、プルダウンよりある項目が選択されたと同時に、あるテキストボックスの入力を不可、またはmaxlengthを0にしたいのですが、思うように出来ません。
maxlengthをvalue等に変更させたら値は変更されたので、
関数としての動きは問題なさそうです。

どなたか、ご教授お願いいたします。

※現在下記のソースは、list番号を指定していません。

<script language="JavaScript">
<!--
function MM_jumpMenu(){
parent.document.form1.text1.maxlength=0;

}
//-->
</script>

<form name="form1" method="post" action="">
<select name="menu1" onChange="MM_jumpMenu()">
<option selected>unnamed1</option>
<option>unnamed2</option>
</select>
<input type="text" name="text1" maxlength="10">
</form>

フォーム制御として、JavaScriptを使用して、プルダウンよりある項目が選択されたと同時に、あるテキストボックスの入力を不可、またはmaxlengthを0にしたいのですが、思うように出来ません。
maxlengthをvalue等に変更させたら値は変更されたので、
関数としての動きは問題なさそうです。

どなたか、ご教授お願いいたします。

※現在下記のソースは、list番号を指定していません。

<script language="JavaScript">
<!--
function MM_jumpMenu(){
parent.document.form1.text1.maxlength=0;

}
/...続きを読む

Aベストアンサー

> parent.document.form1.text1.maxlength=0;

form1 は、親にあるのは間違っていないのですね。

で、入力負荷にするのなら disabled プロパティをいじりましょう。

parent.document.form1.text1.disabled = true;

Q校閲お願いします。 長さ、重さの単位変換です 数字に誤りがないか確認してください お願いします 左

校閲お願いします。
長さ、重さの単位変換です
数字に誤りがないか確認してください
お願いします

左下は関係ありません

Aベストアンサー

重量で、「1分」が正式に単位として用いられていたかどうか知りませんが、1分 = 1/10 匁 とすると
 1分 = 0.375 g = 0.000378 kg
です。kg の数値が違っています。同様に
 1匁 = 3.75 g = 0.00378 kg

 尺貫法の「375 g 」の単位が何なのか読めませんが、あまり聞いたことがないような。

 あとは、目的が不明ですが、ヤードポンド法の重量「1ポンド」には
 1 lb = 453.59237 g = 0.45359237 kg
と kg を追加した方がよいと思います。

 それから、ヤードポンド法の ton は非常に紛らわしいので、何らかの「英トン」「米トン」「メートル法のトン」を区別する表記が必要かと思います。ここに書かれているのは「英トン」のようですが。
 「1 ship」と書かれているのが「米トン」のようですが、「ship」という単位表記は見たことがありません。

Q3つテキストボックスすべてが未入力の場合アラートを出す方法(SUBMITボタンが3つある場合)

3個あるテキストボックスの内、
すべてが未入力の状態でいずれかのボタンをクリックすると
アラートを出すプログラムを作りたいと思うのですが、
上手くいきません。
(ボタンが一つの場合は上手くいくのですが、3つに増やすと反応がおかしくなります)
別処理として、半角数字以外の文字を入れてもアラートが出る様にも
作りたく思っております。

以下に製作中の内容を記します。
どなたか教えていただければ大変助かります。
=======================

<hmtl>
<script language="JavaScript" type="text/JavaScript">
function ChkFormVal(theForm) {
var num=0;
var tempnum,temp,i;
var no_of_items=theForm.elements.length-1;

for(i=0;i<no_of_items;i++) {
temp=theForm.elements[i].value;
tempnum=parseInt(temp);
if(isNaN(tempnum)==true) {
if(temp!="") {
theForm.elements[i].value="";
alert("ご注文数量を入力してください(1)。なお、数量は半角数字で入力してください。");
//alert("debug");
return false;
}
else
tempnum=0;
}
num+=tempnum;
}
if(num==0) {
alert("ご注文数量を入力してください。なお、数量は半角数字で入力してください。");
return false;
}
else
return true;
}
//-->
</script>

<body>
<form name="hirano" method="post" action="online.asp" onSubmit="return ChkFormVal(this)">

■ご注文数量1 <input type="text" name="a1" size="5">
<input type="submit" name="Submit" value="お届け情報の入力へ">
■ご注文数量2 <input type="text" name="a3" size="5">
<input type="submit" name="Submit" value="お届け情報の入力へ">
■ご注文数量2 <input type="text" name="a4" size="5">
<input type="submit" name="Submit" value="お届け情報の入力へ">

</form>
</body>
</hmtl>

=======================
※実際作ろうとしているモノはテキストボックス・ボタンが100個程あります。

以上です
宜しくお願いします。

3個あるテキストボックスの内、
すべてが未入力の状態でいずれかのボタンをクリックすると
アラートを出すプログラムを作りたいと思うのですが、
上手くいきません。
(ボタンが一つの場合は上手くいくのですが、3つに増やすと反応がおかしくなります)
別処理として、半角数字以外の文字を入れてもアラートが出る様にも
作りたく思っております。

以下に製作中の内容を記します。
どなたか教えていただければ大変助かります。
=======================

<hmtl>
<script lan...続きを読む

Aベストアンサー

theForm.elementsにはサブミットボタンも含まれますので
当然ループ内の処理でサブミットボタンを考慮しなければいけません。
elementのtypeやname属性でチェック対象であるか判定するべきでしょう。

QExcelの数字とその単位のセルの連携移動について

「Excelのセルの数字の移動について教えてください」と下記の質問をさせて頂き、

Excel 2007のセルA1、B1、C1において、
(1)A1に数字が有ればB1に数字が有る無しに関係なく、C1にA1の数字が設定される。
(2)A1に数字がなくてB1に数字が有れば、C1にB1の数字が設定される。
(3)A1に数字がなくてB1にも数字がない場合は、C1は空欄とする。
ご存知の方はぜひ教えてください。
よろしくお願いいたします。

下記のご回答を頂き    ・・・           =IF(A1&B1="","",IF(A1="",B1,A1))
は「ベストアンサー」にさせて頂きましたが、
A1にはその単位X1が・・・B1にはその単位Y1があり、
C1にA1の数字が設定された場合はD1にX1が設定され、
C1にB1の数字が設定された場合はD1にY1が設定され
C1が空欄の場合はD1は空欄となる方法は如何でしょうか。
ご存知の方はぜひ教えてください。お待ちしております。よろしくお願いいたします。

Aベストアンサー

D1に以下の数式を入力してください。
=IF(OR(C1="",NOT(OR(C1=A1,C1=B1))),"",IF(C1=A1,X1,Y1))

Qテキスト入力欄に数字を3桁入れたときに他の入力欄にフォーカスさせる

テキスト入力欄に数字を3桁入れたときに他の入力欄にフォーカスさせる(例:郵便番号を上3桁入れたら下4桁の入力欄にフォーカスさせる)にはどうしたらよいのでしょうか?

lenghtを使えば桁数の参照はできると思うのですが、一定期間ごとに参照し続けるわけにもいかないし、参照すればいいのかわかりません。

Aベストアンサー

おつかれさまだです、

onkeypressメソッドなんてどうでしょうか?

キーが押されるたびに呼ばれるのでその中で
テキストのレングスを見て3だったらフォーカスを
移すみたいな。。。

参考URL:http://www.openspc2.org/JavaScript/

Q数字の単位を何万と表したいのですが。

同じ列にある数字を自動的に任意の単位で表したいのですが。
 例  11,000 20,000 125,000これらの数字がそれぞれ11万 2万 12.5万と表示させたいのですが、どうすれば良いのでしょうか?
すみませんが、どなたか教えて貰えないでしょうか。よろしくお願いします。 

Aベストアンサー

エクセルなら
=A1/10000 & "万"
でいいんじゃないですか?

Qブラウザ上のテキストボックスから数値を受け取って別のテキストボックスに計算結果を返す

超初心者です。
Cの勉強をしていたのですが、javascriptにも手を出してみました。
変数の考え方が違うせいか、理解が間違っているのか・・・

ブラウザ上でテキストボックスに数値を記入して、別なテキストボックスに計算結果を返すソースを考えていました。
以下のような感じです。

HTML
------------------------
<form>
林檎 100円 * <input type=text name=txt7>個 
<input type=button value="計算" onClick="func4(txt7)"><br>
合計金額は<input type=text name=txt8>円になります。
</form>
-------------------------
JS
------------------------
function func4(keisan){
document.form2.txt8.value=keisan*100;
}
------------------------
上記のように変数を使うとエラーになります。「NaN」が返ってきます。
変数を使用せずに、直接受け取る値を計算すれば出来たのですが・・・
ブラウザからなにかを入力させ、それを変数に代入した場合は数値(INT)型にはならないのでしょうか??
詳しい方、解説をお願いします・・・

超初心者です。
Cの勉強をしていたのですが、javascriptにも手を出してみました。
変数の考え方が違うせいか、理解が間違っているのか・・・

ブラウザ上でテキストボックスに数値を記入して、別なテキストボックスに計算結果を返すソースを考えていました。
以下のような感じです。

HTML
------------------------
<form>
林檎 100円 * <input type=text name=txt7>個 
<input type=button value="計算" onClick="func4(txt7)"><br>
合計金額は<input type=text name=txt8>円になります。
</form>...続きを読む

Aベストアンサー

> ~value="計算" onClick="func4(txt7)"
これだと、func4に"txt7"という変数(おそらく未定義)を渡すという
意味になります。以下のように記述してください。
onClick="func4(document.getElementsByName('txt7')[0]))"
あるいは"func4(document.form.txt7)"

> document.form2.txt8.value=keisan*100;
引数の keisan はテキストボックというオブジェクトなので、計算
できません。(数値じゃない!)
また、テキストボックスの中身は何でしょう?文字列ですね。
数字しか書いてなくても文字列です。だから 4 + 5 は "45"のように
文字連結になってしまいます。掲題のように乗算など不可能です。

先ず、中身を得るためvalueプロパティを参照しましょう。
また、これを数値化するためparseIntやparseFloatを使います。
document.form2.txt8.value=parseInt(keisan.value)*100; または
document.form2.txt8.value=parseFloat(keisan.value)*100;

> ~value="計算" onClick="func4(txt7)"
これだと、func4に"txt7"という変数(おそらく未定義)を渡すという
意味になります。以下のように記述してください。
onClick="func4(document.getElementsByName('txt7')[0]))"
あるいは"func4(document.form.txt7)"

> document.form2.txt8.value=keisan*100;
引数の keisan はテキストボックというオブジェクトなので、計算
できません。(数値じゃない!)
また、テキストボックスの中身は何でしょう?文字列ですね。
数字しか書いてなくても文字列です。...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報