0

PHP を使用してこの乱数推測ゲームを作成し、JavaScript を使用してクライアント側のフォーム検証を実装しようとしています。スクリプトは 1 ~ 100 の数字のみを許可し、空白、英数字、負の数字、浮動小数点数、および/またはこれらの組み合わせなど、その他すべてを拒否する必要があります。これが私がこれまでに持っているスクリプトです:

<script type="text/javascript">
//<![CDATA[

// The checkForm() function makes sure the user's guess is valid
function checkForm() {
    var numericExpression = /[-+]?([0-9]*\.)?[0-9]+/; // Code is from regular-expressions.info
    if (document.getElementById("userGuess").value.match(numericExpression)) {
        return true;
        } // ends the if statement
    else {
        alert("Enter a valid number between 1-100 that isn't negative or a decimal value");
        document.getElementById("userGuess").focus();
        return false;
    } // ends the else statement
}
//]]>
</script>

フォームは次のとおりです。

<div id="container">
   <h1 id="mainHeading">Let's play a game!</h1>

   <h2 id="subHeading">I'm thinking of a number between 1-100. Take a guess on what you think it is.</h2>

   <!-- User input -->
   <form action="" method="post" onsubmit="return checkForm()" name="formGuess" id="formGuess">
      <input type="text" name="userGuess" id="guessInput" /> 
      <button type="submit" id="submit">You're probably going to get it wrong.</button>
   </form>
</div> <!-- End container div -->

ただし、意図したとおりには機能せず、純粋なアルファベット入力のみを拒否します。他のものが混ざっていて、スクリプトが機能しません。私は自分の個人的なウェブサイトにアップロードされたウェブページを持っています:PHP乱数ゲーム

ありがとう!

4

2 に答える 2

2

正規表現は必要ありません。変数が数値かどうかを確認するには、次のようにします。

var isNumber = (! isNaN(variable));
于 2013-05-09T22:23:06.817 に答える
0

正規表現は本当に必要ないという他の人たちの意見に同意しますが、1 から 100 までの数値 (正規表現を使用しているため、これは実際には文字列です) に対して正規表現がどのように見えるかを知りたい場合は、こちらを参照してください。一方向です:/^[1-9]$|^[1-9][0-9]$|^100$/

それが役立つかどうか、または質問がある場合はお知らせください:)

于 2013-05-09T22:33:10.613 に答える