javascriptを勉強し始めたばかりで参考書のとおりに打っているのですが、疑問が解決しなくて困っています。
以下のようなif else文があったとすると、コマンドにちゃんと数字を入力してくれたらそれで判定ができるんですが、数字ではなくて文字を入力されてしまっても通ることがわかり、何とか解決できないかと悪戦苦闘しています。
javaのことがよくわからなくて、本当にすみませんが、よろしくお願いします。
<script type="text/javascript">
var nenrei;
nenrei=parseInt(prompt("年齢を入力してください。"));
if(nenrei<18){
document.write("18禁です。");
}
else{
document.write("入場できます。");
}
</script>
No.1ベストアンサー
- 回答日時:
<script type="text/javascript">
<!--
var nenrei;
nenrei=prompt("年齢を入力してください。");
if(nenrei.length > 0 && nenrei.match(/^[0-9]*$/) && nenrei>18){
document.write("入場できます。");
}
else{
document.write("18禁です。");
}
//-->
</script>
こんな感じでどうでしょうか。
if文の中では
1.1文字以上の文字が入っているか
2.入力した文字が数字だけか
3.18より大きいか
を見ています。
googleで「javascript 数値かどうか」とか検索すればいろいろ出てくるので参考にしてみてください。
回答ありがとうございました。
とてもわかりやすい説明までつけていただき、助かりました。
論理演算子とmatchで数字か数字かどうかを見ているのを組み合わせることで解決するんですね。
すごいためになりました。
No.2
- 回答日時:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Q3670040 TestCase 1</title>
<script type="text/javascript">
//<![CDATA[
function init(){
var nenrei;
nenrei=parseInt(prompt("年齢を入力してください。"));
//文字が入力された時どんな値が入っているか確認してみよう
//alert(nenrei);
//入っていた値 NaNはそのまま比較できないようだ。
// http://htmlajax.org/index.php?area=Main&page=Num …
if(!isNaN(nenrei) ){
if(nenrei<18){
document.getElementById("hoge").appendChild(document.createTextNode("18禁です。"));
}else{
document.getElementById("hoge").appendChild(document.createTextNode("入場できます。"));
}
}else{
document.getElementById("hoge").appendChild(document.createTextNode("整数でないものが入力されました。"));
}
}
//ECMAscript無効にしている人のことも考えてあげてください
//ECMAscript読める人には簡単に突破されるので
//この手の判別は殆ど意味をなさない。
//本格的にやるなら
//身分証明書のコピーでも郵送してもらって
//ユーザー名とパスワード交付して
//サーバ側でチェックとか。
//]]>
</script>
</head>
<body onload="init();">
<p id="hoge"></p>
</body>
</html>
まだ勉強不足でこのプログラムが何を意味しているのか完全に把握できませんが、こうした解決の方法もあるということがわかりました。
さらに、この年齢認証のアルゴリズムでは現実的に意味を成さないことも教えてくださりありがとうございました。
実際に実用段階になったときに、ほかの方法で処理したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的生成したscriptタグが実行...
-
特定のURLからの訪問者を入室禁...
-
<a href="#" …>の意味を教えて...
-
【SSI】include file、include ...
-
bodyにidをつける理由は何ですか?
-
Vbscriptで自分自身のウィンド...
-
ページ遷移をコントロールしたい
-
datepickerで日付の値を取得したい
-
(Javascript)印刷するファイル...
-
Google scriptについて 至急scr...
-
フレームを跨ぐドロップダウン...
-
getElementsByNameで要素が取得...
-
javascriptのalertで文字化けが...
-
外部.jsの内容を一部置き換えて...
-
JavascriptとJqueryを混在し記述
-
javaスクリプトについて質問で...
-
別ページのページ内リンクでの...
-
function の return 値を表示し...
-
別フレームの中にあるインライ...
-
Jqueryの干渉について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIフォーム一定時間過ぎる...
-
¥マークの検索について
-
document.getElementById
-
location.hrefが動かない・・・
-
javascriptで変数を組み込みたい
-
明日の日にちを表示するときは
-
ページ内文字列の置換について
-
JavaScriptの入れ子
-
1から100までの平方根を表示す...
-
カウントダウンとカウントアッ...
-
JSによるリンク先の値の取得
-
特定のURLからの訪問者を入室禁...
-
16進n桁の文字列変換の方法は?
-
promptを使用した年齢認証
-
ブラウザを閉じないようにする...
-
IEでiframe内のcookieを保持
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
別ファイルのfunctionの読み込み方
-
getElementsByNameで要素が取得...
おすすめ情報