- ベストアンサー
入力された文字列内に、ある数値が2回以上が存在するかチェックをしたい
入力された文字列内に、ある数値が2回以上が存在するかチェックをしたいと思っています。 例えば、 "abcde" というように入力された場合、 入力された文字列の中に0-9までの数値が2回以上があったらtrue そうでなければfalseにするというような感じです。 ○ 01234 ○ abc01 ○ 1abc2 ○ 1ac2d × 0bcde × abcd1 × abcde よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
さすがだぁ! function numCount(s){return !!s.match(/\d.*?\d/)}
その他の回答 (4)
- babu_baboo
- ベストアンサー率51% (268/525)
回答No.5
なにやってんだろう。くどいようでもうしわけない。1もじでもみじかく function numCount(s){return /\d.*?\d/.test(s)}
質問者
お礼
ご回答ありがとうございました。 皆様の回答非常に参考になりました。
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.3
普通にmatchすればよくない? function numCount(s){return s.match(/\d.*?\d/)?true:false;}
質問者
お礼
ご回答ありがとうございました。 皆様の回答非常に参考になりました。
- babu_baboo
- ベストアンサー率51% (268/525)
回答No.2
ちじまった。 function numCount(s){return s.replace(/\D/g,'').length>1}
- babu_baboo
- ベストアンサー率51% (268/525)
回答No.1
もうすこしみじかくなる? function numCount(s){var c=0;s.replace(/[0-9]/g,function(){c++});return c>1}
お礼
ご回答ありがとうございます。 いや、こんなに短くなるものなんですね。 非常に参考になりました。ありがとうございます。 とりあえず動かしてみました。 きれいなソースではありませんが、取り急ぎ。 <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>