CS フォームの URL 検証を行う必要があります。httpをチェックし、存在しない場合は追加するスクリプトが既にあります。ただし、検証だけを行う別の関数を追加すると、どこに置いても無効な URL が返されます。
これは私が実行しているものです
<script type="text/javascript">
$(function(){
$('.url').blur(function(e) {
if ($(this).val().match(/^http/) || $(this).val().match(/^https/)) /*define the http & https strings */ {
$.noop() /*if strings exist, do nothing */
}
else {
// get value from field
var cur_val = $(this).val();
// do with cur_val
$(this).val('http://' + cur_val);
}
});
});
</script>
これは、検証に使用した 2 番目の関数です。
<script type="text/javascript">
function validate() {
var url = document.getElementById("url").value;
var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
if (pattern.test(url)) {
alert("Url is valid");
return true;
}
alert("Url is not valid!");
return false;
}
</script>
私は何を間違っていますか?2 つの関数をマージしようとしましたが、私の js スキルはその正確な瞬間を選択して失敗します。
ありがとうございました!