• ベストアンサー

条件式のついて

name="before" に7桁もしくは、8桁の半角数字の value があります。 もし7桁だったら、先頭から5桁目に「0」を挿入して、8桁にして name="after" に入力します。 "before" の value が8桁ならそのまま "after" に入力します。 上記の条件式の if else 文を考えておりまして、条件式の部分で煮詰まって しまっております。 ご教示お願い致します。

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

よく分からないわね 具体的に何をしたらだめだったというの?

hage_1000
質問者

お礼

ありがとうございます。質問させていただいた内容を実現するための 「書式(配列?)」についての質問でした。 ろくすっぽ勉強もせずにいきなり質問して、「時間を掛けずに サンプルコード」を丸投げしてもらえるかも。。。 なんて言う、ズル~い考え方から出たあさはかな質問でした。 そんな私のようなズルい人間の質問には、askaaskaさんの    「具体的に何をしたらだめだったというの?」 と言う返しは、かなり有効に思います。 質問者は、結局「何もしていないので答えられない」からです。 この手の質問に、ご丁寧にサンプルコードを惜しげもなく ご自身の時間を裂いて作って提供されている回答者さんに、 是非見ていただきたいやり取りでした。 ありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

いまいち質問の意味がよくわかりませんが こんな感じでどうでしょう? <script> function go(){ var v=document.getElementById("before").value; var reg=new RegExp("^(\\d{3})(\\d{4})$"); if(v.match(reg)){ var ex=reg.exec(v); document.getElementById("after").value=ex[1]+"0"+ex[2]; } } </script> <form> before:<input type="text" name="before" value="1234567" id="before"><br> after:<input type="text" name="after" value="" id="after"><br> <input type="button" value="go" onclick="go()"> </form>

hage_1000
質問者

お礼

サンプルコードまで作っていただき、ありがとうございます。 ところが、質問してから気がついたことで、 実はこの質問の「7桁~8桁のvalue」ですが、これは 他の5つテキストフィールドの「1桁~2桁のvalue」を連結した もので、質問では「5桁目に0を挿入」と書きましたが、実際は 「3桁目に0」だったり、「6桁目に0」だったりすることが、 あとから気づきました。 ご回答を頂いてからで、大変申し訳ないこととは思いますが、 「1桁~2桁のvalue」(連結前のvalue)の状態で、連結後の value を長さが9になるように、「0」で桁数を調整してから 連結する方法に変更しました。 大変お手数をお掛けしました。ありがとうございました。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

その日本語をそのままif文にすればいいと思うけど if (value値の長さ=7) { 先頭から5桁目に「0」を挿入して、8桁にして name="after" に入力 } else if(value値の長さ=8) { そのままname="after" に入力 } 何か質問文にないことで悩んでいるのかしら?

hage_1000
質問者

お礼

ありがとうございます。質問内容はそのものズバリなのですが、 「記述方法(単語?、記号?、順番?)」で悩んでおります。

hage_1000
質問者

補足

実は上記の条件式の「書き方」の部分でございまして。。。 どんな単語(記号)をどんな順番で並べたら、わかってもらえるのか。 と言う段階で悩んでおります。 ネットで調べた単語(記号)を「総当たり戦」のように、順番を変えたり してこねくりまわしてもなかなか「javascript人?(笑)」にはわかって もらえません。 「javascript 語?」のわかる方、どんなふうに訳したら通じるのか 教えていただけると幸いです。 幸いjavascript人は、嫌気がさして私の前から去ってしまうことはなく、 じっと待っていてくれます。(笑)

関連するQ&A

  • ifの条件式

    お世話になります。初歩的な質問とは思いますが、どうぞよろしくお願いします。 HTMLでのフォームの一部に次のようなラジオボタンの記述をしています。どちらか選んでCGIに渡し、「試験1」を選んだなら処理1を、「試験2」を選んだなら処理2を行いたいのですが、ifの条件式の書き方(ラジオボタンで選んだ方の値を受け取る変数の書き方)が分かりません。 ----HTML----------------------------------------- <input type="radio" name="test" value="テスト1"> 試験1 <input type="radio" name="test" value="テスト2"> 試験2 ----CGIスクリプトの一部-------------------------- if( ? ? ? =="テスト1"){ 処理1 }else{ 処理2 } ----------------------------------- ifの条件式の書き方を教えて下さい。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • 条件式について

    お世話になります。 if (n == "aaaa"){aaaaに関する条件式; } else if (n == "bbbb"){bbbbに関する条件式; } else if (n == "cccc"){ccccに関する条件式; } とある場合、n に「aaaa」、「bbbb」、「cccc」以外の 不特定の文字列が入った場合の記述方法を教えてください。 よろしくお願い致します。

  • 条件付き書式でできますか?

    エクセル2007ユーザーです。セルにコピーした半角数字を貼り付けるのですが、その数字が10桁と9桁の場合があります。9桁の数字のみ、条件付き書式でセルの色と文字をマーキングすることは可能でしょうか。 入力規則ですと、貼り付けた場合、規則は無効となってしまいます。 マクロやVBAを使わないでできれば、関数で行うことは可能でしょうか。 ご教示よろしくお願いします。

  • Excelの複数の条件にあった式を教えて下さい。

       A     B     C    D    E 1   4.7          16    8    3 2  5.8          0.0   3.0   6.0 3  4.5 4  2.16 5  3.55    ・    ・      ・    ・   Aの列には1日の平均気温が入力されています。(A31まで) B1に、「A1が16℃以上だったら0.0、8℃以上16℃未満だったら3.0、3℃以上8 ℃未満だったら6.0」と式を作り、B2から下の欄も、「  」内の条件でした いのですが、教えてもらえないでしょうか? 宜しくお願いします。 あらかじめ、C1~E1に16℃、8℃、3℃と言う意味で数字を入れています。 C2~E2にも、条件を満たしたら、この数字になりなさいという意味で数字を 入れています。 IF文を使ってB1に =IF(A1>C1,”0.0”,IF(D1≦A1>C1,”3.0”,IF(E1≦A1>D1,"6.0",""))) と式を入れたのですが、#NAMEとエラーが出てきます。

  • EXCELの複数条件式

    セルA  セルC 100   1000 101   1000 102   1000 200   2000 =SUM(IF(Sheet1!$A$1:$A$4=10,Sheet1!C$1:C$4,0),0) この条件式にセルAの先頭2桁で該当した合計を算出したいのですが 教えて下さい。

  • VBスクリプトで他条件分岐を作成したいです。

    VBスクリプトで他条件分岐を作成したいです。 大変申し訳ありません。再質問です。 使用している印刷ソフトにて以下の説明があります。 VBスクリプト(Microsoft Visual Basic Scripting Edition) とは、Windows PCで使用できるスクリプト言語です。 Visual BasicやOfficeのVBAとは似ていますが、別の言語となります。 本印刷ソフトはVBスクリプトを利用する事で、あらかじめ用意されている書式以外の 自由な書式で表現したり、データーベースに基づく複雑な条件分岐に従って 内容を変更したりできます。 :省略 データソースに入力されている値に対して後処理をかけることができます。 (データソースはExcelからデータベースフィールドで取得し、  値をその他のオプションのVBスクリプトで後処理します) ようするにValueから値を読み込み、値を編集してValueに返すという 処理をすることになります。 例えばデータソース 3A500100000099 の 3A5と00100000099の間(3文字目のあと)に ハイフンを入れるスクリプトであれば   str = Value   Value = Left(str,3) & "-" & Mid(str,4,14) という内容になります。 この説明から 現在ソフトの設定にて接続されているデーターソース(指定のエクセルファイルのC列) に入力されている値において以下の5種類が存在していて(全て半角英数字) その5種類によって以下の法則で編集(半角ハイフンをかます)をして値を返したいです。 データ元のエクセルファイルに式を入れるのも選択肢ですが、このエクセルファイルは システムの夜間バッチでファイル名は同じで上書更新される為エクセルに式を入れておいても 翌日には式が消えてしまいます。 このソフトはこういう場合に取得したデータを加工して表示されそれが印刷されるので この機能を使用したいのです。 Select Case を使用するべきだと思うのですが未経験者の私の手に負えません。 今回限りの設定なのでなんとか乗り切りたいです。 よろしくお願いします。 1.○○○○○○○○○○○○○○(先頭が3以外で14文字)     ↓   ○○○-○○○○○-○○-○○-○○(3-4、8-9、10-11、12-13桁の間に半角ハイフンを入れる) 2.○○○○○-○○○○○(5ケタ-5ケタ)      ↓   ○○○○○-○○○○○(変換しない)   3○○○○-○○○○○(先頭が3で5ケタ-5ケタ)     ↓   3○○○○-○○○○○(変換しない)   3A○○○-○○○○○(先頭が3Aで5ケタ-5ケタ)     ↓   3A○○○-○○○○○(変換しない) 3.○○○○○○○○-○○○○○(8桁ハイフン5桁)     ↓   ○○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3○○○○○○○-○○○○○(先頭が3で8桁ハイフン5桁)     ↓   3○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3A○○○○○○-○○○○○(先頭が3Aで8桁ハイフン5桁)     ↓   3A○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる) 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○(5-6、10-11、12-13桁の間に半角ハイフンを入れる) 5.3A○○○○○○○○○○○○(先頭が3Aで14桁)    ↓   3A○-○○○○○○○○○○○(3-4桁の間に半角ハイフンを入れる)

  • javaScriptでアラート設定を教えてください。

    現在入力フォームを作成しておりますが、どうしても設定できない部分がありますので、教えてください。 下記のようなスクリプトを記述していますが、「ナンバー」のエラー表示部分に、半角数字3桁のみの入力設定を行いたいです。 それ以外を入力するとエラーが表示されるように設定を行いたいです。 宜しくお願い致します。 <script> function WriterCheck() { var str = document.dataInputForm.name.value; if( str.match( /[^A-Za-z\s.-]+/ ) ) { alert("名前は、半角英文字のみで入力して下さい。"); return false; } return true; } function CheckForm(dataInputForm) { var FormOK = false; if (dataInputForm.no.value == "") { FieldControl(dataInputForm.To, "ナンバーが未入力です。"); }else if (dataInputForm.title.value == "") { FieldControl(dataInputForm.To, "タイトル名が未入力です。"); }else if (dataInputForm.name.value == "") { FieldControl(dataInputForm.To, "名前が未入力です。"); }else { FormOK = true; } return FormOK; } function FieldControl(element, message) { alert(message); } </script>

  • エクセル 条件式

    セルA1が10より低いと1、10より高いと2が入力されるという条件式(1)はわかるのですが、セルA1<10の時1、10<A1<20の時2、20<A1<30の時3、30<A1<40の時4、という条件式を知りたいです。ご教示お願いします。 (1)IF(A1<10,1,2)

  • if [ 条件式 ]とif[[ 条件式 ]]

    シェルスクリプトでのif [ 条件式 ] と if [[ 条件式 ]] の違いについて教えてください。 以下のシェルスクリプトを実行すると、 意図したとおり、111 と出力されます。 =========▼▼(ここから)▼▼========= #!/bin/sh AAA=yes if [[ "$AAA" = [yY]* ]] then echo 111 else echo 222 fi =========▲▲(ここまで)▲▲========= 上記、スクリプト3行目の if [[ "$AAA" = [yY]* ]] の部分を if [ "$AAA" = [yY]* ] というように、角カッコ 1重にすると、 エラーは発生しませんが、 222と表示されます。 if [ 条件式 ] と if [[ 条件式 ]] の違いについて教えていただけないでしょうか。

  • 文字列に空白を含んだ場合の処理

    現在、文字列の入力チェックの関数を作成しています。 function checkMemberId() { if(document.form1.memberId.value==undefined){ alert("番号を入力してください。"); return false; }else if(??????????){ alert("空白が含まれています。"); return false; }else { alert("半角数字を入力してください。"); return false; } } 上記の else if の条件に、document.form1.memberIdに空白を含んだ文字列が入力されたらアラートメッセージを出すという処理を記述したいのですが、どういう処理を記述すればよいのでしょうか。 空白は全角・半角とも対象で、すべて空白が入力された時も同様の処理にしたいです。 以下、該当のHTML部です。 <form name="form1"> <input type="text" name="memberId"> </form> 以上、よろしくお願い致します。