• ベストアンサー

入力された文字列内に、ある数値が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