2016-10-31 9 views
-1

私はjquery validateで実行しているフォームを持っています。彼らが使用しているurlメソッドでは、httpにURLを追加する必要があります。ユーザーはhttpやwwwを使わずにURLを送信できます。私は、追加Methodeの使用:jquery validate- urlメソッドを追加して正規表現を使用してURLなしでURLを許可

jQuery.validator.addMethod("urlRegex", function(value, element) { 
     return this.optional(element) || /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))[email protected])?((?:[a-z0-9_-]+\.)+[a-z]{2,}|localhost|(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])))(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/.test(value); 
    }, "PLEASE ENTER A VAILD WEBSITE "); 

とルールの下で、私は新しいメソッドを追加しました:

rules: { 
      name: { 
       required: true, 
       minlength: 2 
      }, 

      email: { 
       required: true, 
       email: true 
      }, 

      website: { 
       required: true, 
       urlRegex: true 
      }, 
     } 

をしかし、それはまだ必要とHTTPです:URLの先頭に\。私はregex101.comでこの正規表現をチェックし、example.comのようなURLと一致するので、問題が正規表現か他のものかどうかはわかりません。

ありがとうございました。

答えて

0

使用この代わりに...

これは、HTTPの有無にかかわらず動作します://

/^([\:\/\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$ 
+0

ねえ、ありがとう。 iv'eが質問に書いたように、私はwwwなしで働くためにこれを必要とします(example.comは有効でなければなりません)。私が持っている正規表現はテスト時にうまくいきますので、問題はそこにあるとは思わない。 –