function validInteger(theNumber){
var anyNonDigits = new RegExp('\D','g');
if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
return true;
}else{
return false;
}
}
上記は私が入力を検証するために書いた関数です。私はすべての正の整数が欲しい。私が直面している問題は、RegExpオブジェクトです。これは非常にシンプルでなければならないようですが、なんらかの理由でうまくいかないようです。正規表現を使用して入力に非数字があるかどうかを確認する
たとえば、私が 'f5'を渡すと、私は本当ですが、私が '5f'を渡すと私は偽になります。私は負の数を渡すときにも問題があります。 -3は、RegExpに渡す前に変数を文字列化しても捕捉されません。私はif文に '&&parseInt(theNumber)>0
'を追加することでこれを修正できますが、RegExpもそれをキャッチする必要があります。前もって感謝します!単に
'\'はエスケープする必要があるため、正規表現は機能しません。文字列リテラル表記では '\'も意味を持ちます。 'new \ 'RegExp(' \\ D '、' g ');' –
...でも、 'g'修飾子は必要ありません。入力。 –
@amnotiamなぜ私がやっていたことがうまくいかなかったのかに関する情報に感謝します。正規表現は私がまだ新しいことです。うまくいけば、私はすぐにそれを変更します。 –