下面的正則表達式很好,除了我在名稱服務器的末尾只需要一個點(。)。例如,如果用戶提交ns1.hello.com
,則會出現錯誤。接受的格式是這樣結束的點號ns1.hello.com.
請幫助我。謝謝。在名稱服務器末尾只需要一個點
<script type="text/javascript">
function validSubdomain() {
var re = /^[a-zA-Z0-9][a-zA-Z0-9.-]+\.$/;
var val = document.getElementById("nameserver").value;
var val2 = document.getElementById("nameserver2").value;
if(val == '' && val2 == ''){
alert("Please fill in the name server");
document.forms['namaform'].elements['nameserver'].focus();
return false;
}
if(val == ''){
alert("Please fill in the name server 1");
document.forms['namaform'].elements['nameserver'].focus();
return false;
}
if(val2 == ''){
alert("Please fill in the name server 2");
document.forms['namaform'].elements['nameserver2'].focus();
return false;
}
var parts = val.split('.');
var parts2 = val2.split('.');
if (parts.length < 3)
{ alert('invalid nameserver format')
document.forms['namaform'].elements['nameserver'].focus();
return false;
}
else if (parts2.length < 3)
{ alert('invalid nameserver 2 format')
document.forms['namaform'].elements['nameserver2'].focus();
return false;
}
if(!re.test(val)) {
alert("invalid nameserver 1 format");
return false;
}
else if(!re.test(val2)) {
alert("invalid nameserver 2 format");
}
else{namaform.submit();}
}
</script>
+1 - 你的答案比我的完整得多 - 但你實際上設法解決所有問題*除了真正的問題! – ruakh
結束時忘了那個點XD現在修好了,我相信。 –
@Kolink存在一個問題,用戶可以鍵入任意字母數字,尾部2個點或更多,驗證將接受'j..','7 ...'。這是錯誤的。我只想接受這種格式的'agh51-.7ds - a.8jh-9a.'。我希望你能理解我。謝謝。 – sg552