フォーム検証正規表現と DOM: フォーム検証で正規表現を実装する最良の方法は何ですか?
私は現在これを行っていますが、検証すると値が一致しません:
if(this.value.length > 0 && this.value === /^[a-zA-Z]+$/ );
前もって感謝します!
フォーム検証正規表現と DOM: フォーム検証で正規表現を実装する最良の方法は何ですか?
私は現在これを行っていますが、検証すると値が一致しません:
if(this.value.length > 0 && this.value === /^[a-zA-Z]+$/ );
前もって感謝します!
コードで値を計算しないのはなぜですか? typewise equality test を使用したためです===
。JavaScript の世界の動的型では、次のように述べられています。それらの値の型が同じかどうかをテストし、値が等しいかどうかをテストします。したがって、文字列であるいくつかのテキストボックスの値をそのようにテストしようとしていたとき
typeof('a')
「a」は実際には文字列であるため、このコードは「文字列」を生成します。しかし:
typeof(/^[a-zA-Z]+$/)
これにより、「オブジェクト」が生成されます。ご覧のとおり、文字列をオブジェクトと比較しようとすると、型ごとの等価テストは常に false を返します。
これは、オブジェクトとその値の同等性をテストするためのものです。正規表現については、「bam」の回答を参照してください。