すべての正規表現を 1 つのオブジェクトに格納して、JavaScript でフォームを検証しようとしていますが、正規表現を呼び出しても機能しません。
;(function() {
var Rules = {
"nick" : '/^[0-9a-zA-Z_]{5,20}$/'
, "password" : '/^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/'
, "email" : '/^[_a-z0-9.-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'
, "name" : '/^[a-zA-Z -]+$/'
, "date" : '/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/'
, "country" : '/^[a-zA-Z]+$/'
};
$('.validation-required').click(function(e){
$(e.target).blur(function(){
if( e.target.value( Rules [ e.target.name ] ) ) {
console.log('true');
}
else {
console.log('false');
}
$(e.target).unbind('blur');
});
});
})();
したがって、常に"false"
;を返します。私はこのようなことを試しました:
if( e.target.value( new RegExp ( Rules [ e.target.name ] ) ) ) ...
また
if( e.target.value( Rules [ e.target.name ].toString() ) ) ...
また
if ( Rules [ e.target.name ].test( e.target.value ) ) ...
この場合、コンソールはエラーをスローします。
(...) has no methd test
どうすれば修正できますか?