• ベストアンサー

入力された文字列内に、ある数値が2回以上が存在するかチェックをしたい

入力された文字列内に、ある数値が2回以上が存在するかチェックをしたいと思っています。 例えば、 "abcde" というように入力された場合、 入力された文字列の中に0-9までの数値が2回以上があったらtrue そうでなければfalseにするというような感じです。 ○ 01234 ○ abc01 ○ 1abc2 ○ 1ac2d × 0bcde × abcd1 × abcde よろしくお願いします。

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

  • ベストアンサー
回答No.4

さすがだぁ! function numCount(s){return !!s.match(/\d.*?\d/)}

tes_school
質問者

お礼

ご回答ありがとうございます。 いや、こんなに短くなるものなんですね。 非常に参考になりました。ありがとうございます。 とりあえず動かしてみました。 きれいなソースではありませんが、取り急ぎ。 <html> <head> <script type="text/javascript"> function numCount() { var i; var mes=""; if(! document.okwave.pass.value.match(/\d.*?\d/) ) {mes += "2文字以上で入力ください";} if(mes != "") {alert(mes); return false;} else {return confirm("送信します");} } </script></head> <body> <form name="okwave" action="" method="post" onsubmit="return numCount();"> 2文字以上数値がないとエラー:<input type="text" name="pass" size="8"><br> <input type="submit" name="" value="送信"> <input type="reset" value="取消"> </form> </body> </html>

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

なにやってんだろう。くどいようでもうしわけない。1もじでもみじかく function numCount(s){return /\d.*?\d/.test(s)}

tes_school
質問者

お礼

ご回答ありがとうございました。 皆様の回答非常に参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

普通にmatchすればよくない? function numCount(s){return s.match(/\d.*?\d/)?true:false;}

tes_school
質問者

お礼

ご回答ありがとうございました。 皆様の回答非常に参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

ちじまった。 function numCount(s){return s.replace(/\D/g,'').length>1}

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

もうすこしみじかくなる? function numCount(s){var c=0;s.replace(/[0-9]/g,function(){c++});return c>1}

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 入力された文字を1文字ずつチェックする方法

    入力された文字列内に、ある特定の文字が存在するかチェックをしたいと思っています。 例えば、 "abcde~fghi" というように入力された場合、 入力された文字列の中に~(チルダ)があったらエラーにするというような感じです。 1文字ずつチェックできる方法を教えていただきたいと思います。 よろしくお願いします。

  • 2文字以上の重なっている文字列を抜き出す方法

    例えば、次のようなテーブルがあって、mojiretuカラムにおいて 他の行の文字列と2文字以上の重なっている部分の文字列を取得したいのです。 ただし条件があって下の場合だと、「ab」は1、2行目で重なっているのですが、 2行目の「ab」はそれで全ての(終結している)文字列なのでマッチさせないようにしたいです。 なので、このテーブルから取得したい文字列は 「cd」「bcd」「abc」「bc」「de」になります。できれば重なっている回数も含めて取得したい (「cd」2回、「bcd」1回、「abc」1回、「bc」1回、「de」1回、) のですが、どのようなSQLを記述すれば良いのでしょうか? [テーブル] mojiretuカラム abcd ab cde abcde xy

    • ベストアンサー
    • MySQL
  • Javascriptで文字列中の最後の"のみを消去するには?

    Javascriptで"が最終文字に含まれた文字列から、それを取り除いた文字列を得る方法がどうしても分からないので、どうか教えてください。 例)「abcde"」→「abcde」 もしよろしければ「a"bcde"」→「a"bcde」といった「"」が途中に出てくるやり方もお願いします。

  • 文字列から数値を抽出したいのですが・・。

    文字列から数値(integer型)を抽出したいのですが、うまくいきません。 val関数だと文字の途中の数値が判別できないし、困っています。 よろしくお願いします。 ※以下、文字列と数値の関係です。 ・"文字列" → 抽出したい数値  "0k,abc,5k,abc3.0" → 0530  "abc()_3t" → 3

  • Excelで数値が文字列になっています

    Excel2010で「このセルにある数値がテキスト形式か、またはアポストロフィで始まっています」という警告が表示されたりして、計算が出来ません。 打ち直ししたり、「エラーチェックルール」で「文字列形式の数値、、またはアポストロフィで 始まる数値」のチェックを外したりして計算は出来るようになります。 「表示形式を変えてもセルの中の値は変化しません。数値データは数値のまま、文字列データは文字列のままです。」とは本当ですか? 本当ならば、数字の保存形式が文字列データかどうかを確かめる方法はありますか? なお、ISNUMBERという関数ではTRUEと出ます。

  • 文字列が連続しているかどうか調べたいのですが、良い方法はないでしょうか

    文字列が連続しているかどうか調べたいのですが、良い方法はないでしょうか? ExcelVBAです。 例えば"abc12saaa"などと文字列があって、4文字以上同じ文字が連続したいるか、4文字以上順番になっている文字があるかを調べるにはどのような方法があるでしょうか。 順番になっている文字とは"abcde"とか"1234"のようなものです。 1文字ずつ取り出して比較したり、1文字ずつAsc関数で数値化すればできるとは思いますが、スマートな方法、既存の関数とかないでしょうか。 よろしくお願いします。

  • 改行コード

    SQL文について教えていただきたいことがあります。 ある列に改行コードを含む文字列があります、 その文字列をまず改行コード毎に分割します、 その後に文字列の最後にある改行コードを消してしまいたいのですがどうすればよろしいでしょうか?みなさま宜しくお願い致します。 例)○=改行コード ABCD○ABCDE○ABC○ → ABCD○ ABCDE○ ABC○ → ABCD ABCDE ABC

  • エクセルで文字列をチェックボックスのように…

    エクセルで、文字列をチェックボックスのように、オン、オフができますか。 分かり易くいうと、チェックボックスにもチェックする四角の横に文字を書くことができますが、この四画のボックスを表示しないで文字のみ表示するとか、コントロールツールボックスのラベルを、クリック1回で処理が終了するのではなく、チェックボックスのようにクリックするたびにTrue、Falseと、指定したセルに表示すると言うことです。 分かり易くと書きましたが、分かりにくくなってしまったかもしれませんが、よろしくお願いします。

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • 文字列入力したものを数値に変換したい

    excel2007です。 数値を文字列で入力したものを 通常の数値に変換するには どうすれば宜しいのですか。 四則演算ができるようにしたいのですが。