2011-08-05 6 views
1

これは基本的にURL(http://www.x)を検証しようとしています。現在は動作しています。さらに、jsFiddle(入力はhttp:ここで//www.jsfiddle.net/ ")& StackOverflowののURL(入力が始まらなければなりません "" http://www.stackoverflow.com/)jQueryとRegexでカスタム入力URLフィールドを検証する

作業フィドルは検証がbassistance validate pluginあるhttp://jsfiddle.net/eAnS9/

ですこれはdocumented hereです。

フィールドの開始値に基づいてフィールドを正しく検証する方法はありますか?

更新: bassistanceのソースコードでは、bassistanceの現在の検証と一体化する必要がありますか? (URLの正規表現である場合があります)

答えて

2

validator.addMethod()を使用してカスタムルールを作成します。これは、トリックを行う必要があります:

//--- Add a domain-check rule 
jQuery.validator.addMethod ("domainChk", function (value, element, params) { 

     if (this.optional (element)) 
      return true; 

     //--- Get the target domain, this will be in the rel attribute. 
     var targDomain = $(element).attr ("rel"); 
     var regExp  = new RegExp ("^https?:\/\/(www.)?" + targDomain + "\/", "i"); 

     return regExp.test (value); 
    }, 
    function errmess (params, element) { 
     return "This must be a valid URL for " + $(element).attr ("rel"); 
    } 
); 

これをCSSクラスに接続します。 :それだ

<input class="field required url domainChk" rel="jsfiddle.com"  ...> 
<input class="field required url domainChk" rel="stackoverflow.com" ...> 


jQuery.validator.addClassRules ({ domainChk: {domainChk: true} }); 


domainChkルールが必要なドメインがそうのような入力ののrel属性、であることを期待します! See it all in action at jsFiddle.

+0

完璧な答え。おかげさまでBrock、今日はたくさんのことを学んだよ:) – Maverick

+0

あなたは大歓迎です。喜んで助けてください。 –

0

は良いかもしれなく、

var Reg = /https?:\/\/(w{3}\.)?(jsfiddle|stackoverflow)(.com\/)/ 

は私が使用したものです。 http://jsfiddle.net/eAnS9/

関連する問題