以下の正規表現はネームサーバの最後にドット(。たとえば、ユーザーがns1.hello.com
を提出するとエラーが発生します。受け入れる形式は、このような最後にドット付きですns1.hello.com.
助けてください。ありがとうございました。ネームサーバの最後に1ドットしか必要ありません。
<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