2010-12-06 10 views

答えて

2

URLやリンク:

http://www.example.com

私はときに、ユーザーの種類のhttp検証する必要がありますか?違いがあります。

どちらの場合でも、バックエンドをチェックすることを忘れないでください。クライアント側の検証は信頼できません。ユーザーの生活を楽にするためにのみ使用してください。あなたはこのような一致する正規表現でカスタム関数を使用することができ

+0

私はPHPを使用してバックエンドで検証しています。私はフロントエンドでのみチェックする必要があります.. 例:http://www.example.comこのリンクを避けたいです。 – Kathir

2

$.validator.addMethod('no_url', function validatePositionNummer(value){ 

      var re = /^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$/; 
      var trimmed = trim(value); 
      if(trimmed == ''){ 
       return true; 
      } 
       return trimmed.match(re); 

     },"No URLs allowed!"); 

次に、あなただけの要素に新しいカスタム検証メソッドを追加します。

$("#your_form").validate({ 
textarea: no_url 
}); 

あなたは微なければならないでしょう正規表現の正規表現を調整する。

+0

大文字と小文字を区別しない一致の代わりに大文字と小文字を明示的に指定するのはなぜですか? CoMとその(またはBIZ、博物館、その他のCCTLD)とは一致しません。 – Quentin

0

@BernardMarx解決策をありがとう。

ここで私の要件に応じてプロトコルを検証するために余分な正規表現を使用しました。今私は最後に検証する必要があります。提案してください。..例については

http://www.example.com/index.php

http://www.example.php/home/

$.validator.addMethod('no_url', function validatePositionNummer(value){ 

    var re = /^[a-zA-Z0-9\-\.\:\\]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$/; 

    var re1 = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 

    var trimmed = $.trim(value); 

    if(trimmed == ''){ 

     return true; 
    } 

    if(trimmed.match(re) == null && re1.test(trimmed) == false){ 

     return true; 
    } 

},"No URLs allowed!"); 
関連する問題