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ランキング
-
HTMLでサブフレームから親のス...
-
【Google Apps Script】「ライ...
-
HTMLタグに複数のクラスを設定...
-
IndexedDB を使ってファイルア...
-
読み込んだQRコードをフォーム...
-
イラストレーター、縦中横のシ...
-
ジャバスクリプトについて。
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
二次元配列を使って順位をだす...
-
iOSのみダブルタップが必要
-
jsで質問です。 displayプロパ...
-
var exports = exports || {}; ...
-
Googleフォームで選択肢に応じ...
-
変数名をどのようにつけるのが...
-
ボタンを押したあとに画像を表...
-
disabled プロパティが表示され...
-
二次元配列の中の各行の要素を...
-
出発駅A、到着駅Bを選択すると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIフォーム一定時間過ぎる...
-
動的生成したscriptタグが実行...
-
特定のURLからの訪問者を入室禁...
-
ページ内文字列の置換について
-
コピーライトの年表示について...
-
javascriptで変数を組み込みたい
-
ブログ上で複数のjavaスクリプ...
-
ブラウザを閉じないようにする...
-
書いたクッキーを読み出してメ...
-
Cookieの回数で閲覧制限、javas...
-
ホームページを見る度にTOP画面...
-
こんにちは、23歳、事務系のOL...
-
スクロールしても画像・文字が...
-
JSによるリンク先の値の取得
-
¥マークの検索について
-
16進n桁の文字列変換の方法は?
-
HPビルダーで『最終更新日時』...
-
document.getElementById
-
読み込むたびに画像を順番に表...
-
<a href="#" …>の意味を教えて...
おすすめ情報