• 締切済み

条件式に正規表現を使う場合どうすればいい?

条件式に正規表現を使う場合どうすればいいのでしょうか? if (inputAnswer.value === "あ" || inputAnswer.value === "ア") を if (inputAnswer.value === "あ" || inputAnswer.value === "ア" || inputAnswe2r.value === "あ" || inputAnswer2.value === "ア" || inputAnswe3r.value === "あ" || inputAnswer3.value === "ア") のように複数のinputAnswer変更したいのですが、条件式に正規表現を使う場合どうすればいいのでしょうか? inputAnswer.*.value ではだめですよね。 javascript.です。

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5080/13275)
回答No.2

> ただ同じif分の中ではすべて同じ文字列なので、何とかできないでしょうか? > 手動でやるとなると日が暮れそうです。 入力フォームにクラス名を付けて、クラス名でオブジェクト配列を取得しループ処理で判定するのがいいんじゃないでしょうか。

mousugusokoni
質問者

お礼

確かに同じクラス名にすればInputタグのすべてから入力された文字列の取得はできます。 しかし、条件式の判定はこれでできるのでしょうか? if (inputAnswer.value === "あ" || inputAnswer.value === "ア" || inputAnswe2r.value === "あ" || inputAnswer2.value === "ア" || inputAnswe3r.value === "あ" || inputAnswer3.value === "ア") この判定を if (inputAnswer.value === "あ" || inputAnswer.value === "ア") この状態で whileで回すとinputAnswerのquetySeletorallで取得得した配列で中の要素すべて判定することが出来るのでしょうか? それがもしできるならそれがいいですね。

  • t_ohta
  • ベストアンサー率38% (5080/13275)
回答No.1

オブジェクト名を正規表現で指定することは出来ません。

mousugusokoni
質問者

お礼

自分で手動で if (inputAnswer.value === "あ" || inputAnswer.value === "ア" || inputAnswe2r.value === "あ" || inputAnswer2.value === "ア" || inputAnswe3r.value === "あ" || inputAnswer3.value === "ア") のように打ってあげるしかないのでしょうか? if (inputAnswer.value === "あ" || inputAnswer.value === "ア") を if (inputAnswer.value === "あ" || inputAnswer.value === "ア" || inputAnswe2r.value === "あ" || inputAnswer2.value === "ア" || inputAnswe3r.value === "あ" || inputAnswer3.value === "ア") に置換してあげればいいのでしょうか? ただこれが何百もあって、文字れるの あ もすべてif分毎に文字が違うのが難しいところです。 ただ同じif分の中ではすべて同じ文字列なので、何とかできないでしょうか? 手動でやるとなると日が暮れそうです。  

関連するQ&A

  • 条件式に正規表現は使える?

    条件式にアドレスを指定して個のページだけ式が実行されるようにしたら、ローカルやページ内リンクを押すとアドレスが変わって実行されなくなります。 今回は we/c.html の時と we/c.html#goto何とか の時に実行してほしいので。 if(pageUrl === "https://we/c.html.*") これではいけないのですか? 難しくてよくわかりません。 そのまま正規表現を記載してはいけないので.test(pageUrl)のよう関数を条件式で実行するのですか? f(pageUrl === "https://we/c.html#js-goto-a") のようにページ内遷移のIDがくっつくだけですが、遷移先のIDはいろいろあるので#以下を正規表現ですべてにするだけで十分です。 if(pageUrl === "https://we/c.html.*")ではいけないのでしょうか?

  • 言語ではなく、正規表現のみで複数の条件を記述する方法 ?

    一つの条件の正規表現は書けるようになりましたが、 条件が重なった場合の対処の仕方がわかりません。 my $val = "12"; #数字のみ if($val =~ /^[0-9]+$/){ # match! } #0で無い if($val !~ /^0$/){ # match! } # 数字で0でない <---複数条件 ? # 言語でカバーするのではなく、正規表現のみ(1つの正規表現) # でANDやORやXORができるパターンの記述方法が知りたいです。 if($val =~ /^[0-9]+$/) && ($val !~ /^0$/){ # match! }

    • ベストアンサー
    • Perl
  • 正規表現

    正規表現のパターンを変数内に入れて評価することは 可能なんでしょうか? たとえば、 my $value = " 0123"; my $patern = "\s.+"; if( $value =~ /$patern/ ) ~略~ のような感じです。

    • ベストアンサー
    • Perl
  • 正規表現について

    正規表現について質問が有ります。 プログラミング初心者なので、根本的な間違い等も犯している可能性もありますがご了承下さい。 今、javascriptを使ってフォームに入力されたメールアドレスの入力チェックを行おうとしています。 とりあえずはwebを漁って見つけたソースでチェックできる様にはなったのですが、もうちょっと拡張したいと思った所、つまずいてしまいました。 元のソースは if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/){ alert("error"); } という風にチェックをしており、 ******(@マークが無い) ***@(@の後半が無い) @***(@の前半が無い) などの基本的な形式に対してはチェックを行う様になっています。 しかし、hoge@hogeの様に書くと、適当に書いたドメインでもスルーしてしまいます。 そこで、ドメインのチェックも行おうとしているのですが、ここで詰まっています。 ちなみに今回は携帯のアドレスに限定してチェックを行おうと思っています。 javascriptでの正規表現について書いてあるページを見ながら下の様に書いたのですが上手く動作してくれません。 正規表現の書き方がおかしいのだろうとは思うのですが、どこがいけないのかよく分かりません。 if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/) || /*ここから下を追加*/ (!this.value.match(/@(docomo|ezweb|softbank)\.ne\.jp$/) || !this.value.match(/@i\.softbank\.jp$/)){ alert("error"); } 最初はもとからある基本的な入力形式のチェックを行い、また@後のドメインが携帯のドメインでない場合にエラーを返す。というつもりで書きました。 ですが、***@docomo.ne.jpとしてもエラーが返って来てしまいます。 原因を教えていただけますか? また、もとからあった正規表現が何をどういう指定しているのかもキチンとは理解していないので、教えていただけるとうれしいです。 よろしくお願いします。

  • 正規表現について

    いつもお世話になっております。 以下の正規表現の記述の仕方が分からないのですが、 ご存知の方教えて頂けますでしょうか? (やりたいこと) 以下のような記述がある場合、value=の値が空の時は 処理Aをしたいというif文を書きたいのですが 書き方が分かりません。 if($orginal =~ /<option value=\"\"/){ 処理A } のようなif文を記述したのですが、 2行目の「テスト」も引っかかってしまいます。 どのように記述すればよいのでしょうか? <option value="" >選択してください</option> <option value="テスト" >テスト</option>

    • ベストアンサー
    • Perl
  • VB2010の正規表現

    VB2010の正規表現についての質問です。 ファイル名に複数のドット(ピリオド)が含まれる時や、複数の拡張子がある時でも、 一番最後にある拡張子だけを取り出したいのです。 System.Text.RegularExpressions.Regex("正規表現") で正規表現を指定していますが、 例えば、『T.M.Revolution.m3u』の場合は、『.m3u』だけを取り出したいので、 ("[.].*$") とすると、マッチする部分が『.M.Revolution.m3u』となる為、 ("([.].*){1}$") に、試しに変更してみましたが、失敗してしまいました。 知っている方、 『上記の書き方だと何故ダメなのか』 と、 『この場合の正しい正規表現』 を教えていただけませんか? あと、正規表現ではない代替案などが有れば、是非それも教えて頂きたいです。 よろしくお願いします。

  • javascriptでの正規表現について

    javascript正規表現にて正の整数および小数(半角のみ) を判別したいのですがうまくいきません。どうすればいいのでしょうか。<script language=javascript> function StrCheck(strSrc){ var value = strSrc.value; if (value.match(/[0-999]+¥.[0-99]/)==true){ alert("半角数字のみで入力して下さい"); } </script> ); 以上のようにつくってみましたが、半角でも全角でも「半角を入力してください」というメッセージがでてしまいます。これを全角のみでエラー表示がでるようにしたいのですがどうしたらよいのでしょうか。参考になるWEBページでもあれば教えてください。ご教授の程よろしくお願い申し上げます。

  • 「正規表現」でよく使われる式

    K2Editor などテキスト検索ソフトで重宝する「正規表現」(私は使いこなせていませんが)のうちで、最もユーザーに使われる表現にはどんなものがありますか?正規表現自体の解説ページはあっても、どのような式がよく使われるかの解説は見当たりませんでした。ベスト3くらいよろしくお願いします。

  • 正規表現を使い、URLで条件分岐したいのですが…

    正規表現を使い、URLで条件分岐したいのですが、 うまくいかないので、教えてください。 <やりたいこと> http://ドメイン/page1.html http://ドメイン/page2.html       : のページの時のみ、 という条件分岐をしたい。 <現状> if($_SERVER['REQUEST_URI']=="/page1.html"){ とするとうまくいくのですが、 これを任意のpage○で対応したい $_SERVER['REQUEST_URI']=="^/page*.html$"){ としたけど、ダメでした。 どう書けば、よいでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現での置換えについて

    正規表現を使った置換えでどうやったらいいのか悩んでいます。 やり方は、カンマで区切られた数字や英字の列をその先頭だけ残して別の記号(?など)に変換するというものです。 変換例 222,1,33333 は 2??,1,3???? へ置換え 55,22aa は 5?,2??? へ置換え 6 は 6 へ置換え(つまりそのまま) このような置換えをすることは可能でしょうか。 こういう置換えはand条件が使えないと無理なのかなとも思ったりしています。 ただ正規表現にはand条件は無いようですし。(or条件はあるようですが) mb_ereg_replaceを使って明示していただけると助かります。 もちろん複数行になっても問題ありませんし、mb_ereg_replaceでは無理という場合に別の関数を使っていただいても結構です。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう