2016-11-18 4 views
16

URL入力フォームを作成するにはどうすればよいですか?入力は有効なURLでなければならず、特定のファイルタイプで終了する必要があります。たとえば、これは私の入力HTML入力:特定のファイルタイプで終了するにはURLを指定する

されています:

<input name="bg" placeholder="https://website.com/image" type="url">

あなたが見ることができるように、それは有効なHTTPにそれを制限するURLの種類、使用している://ドメインを、私は希望します.png、.jpg、および.gifファイルのみを受け入れる入力フィールド。

これはhtmlまたはjavascriptで実現できますか?

ありがとうございます!

+1

だからあなたは何の入力が必要なのでしょうか? URLまたは画像? –

+0

@CommercialSuicide http://domain.com/image.pngのような画像リンクが必要なので、URL入力のままで、画像リンクのみを受け入れる必要があります。 –

+2

JavaScriptの検証方法は、まともなscriptkiddyによって簡単に無効/無効にすることができます。悪意のあるユーザーを排除する方法ではなく、悪意のあるユーザーのためのヘルパーとしてJavaScriptの検証を考慮します(一般的なエラーや制限について知らせる一方、サーバーへの呼び出し回数を減らします)。これらのサーバー側のみを処理できます。 –

答えて

17

input:valid { 
 
    border: 1px solid green; 
 
} 
 

 
input:invalid { 
 
    border: 1px solid red; 
 
}
<input name="bg" placeholder="https://website.com/image" type="url" pattern="https?:\/\/(www\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,4}\b([[email protected]:%_\+.~#?&//=]*)(.jpg|.png|.gif)">

+1

私はこの正規表現が正しいとは思わない。 'http:// hello.com.jpg'を正しく検証します。しかし、それを修正する方法がわからない:/ – TheChetan

+0

それに刺すことを望む誰のために。 https://jex.im/regulex/ http://regexr.com/が役立ちます。 QuantifierのキャプチャがJavaScriptのREGEXにない場合クラックするのは難しいナットです.http://www.rexegg.com/regex-quantifier-capture.html。私は正規表現が\ jpg | png | gifの最後に二重引用符で簡略化できると思います。 – JGFMK

3

正規表現を使用してこれを実現することができます。また、ユーザーがJavaScriptを無効にしている場合は、このサーバーサイドを確認することもできます。

Javascriptを

$("#imageUrl").change(function() { 
    var t = $("#imageUrl").val() 
    var expression = https?:\/\/(www\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,4}\b([[email protected]:%_\+.~#?&//=]*)(.jpg|.png|.gif); 
    var regex = new RegExp(expression); 
    if (t.match(regex)) { 
     alert("Successful match"); 
    } else { 
     alert("No match"); 
    } 
}); 

あなたは本当に(私は例えばCSSを追加した)あなたはinputためpattern属性を使用することができ、ここではJavascriptを必要としないHTML

<input id="imageUrl" name="bg" placeholder="https://website.com/image" type="url"> 
3

テキストボックスをぼかして、有効または無効の画像URLを取得してください。

function TextBoxChange() 
 
{ 
 
var textboxValue=$("input[name=bg]").val(); 
 
var pattern=/https?:\/\/.*\.(?:png|jpg|gif)/i; 
 
//alert(/https?:\/\/.*\.(?:png|jpg|gif)/i.test(textboxValue)); 
 
if(pattern.test(textboxValue)) 
 
{ 
 
$("#errorMsg").text("valid"); 
 
} 
 
else 
 
{ 
 
$("#errorMsg").text("invalid"); 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="bg" placeholder="https://website.com/image" onblur="TextBoxChange()" type="url" > 
 
<label id="errorMsg"></label>

+0

'https://。jpg'が有効です。それをもう一度見たいかもしれません。 – TheChetan

関連する問題