Javascript 名称服务器验证
除了Javascript 名称服务器验证,javascript,html,regex,validation,Javascript,Html,Regex,Validation,除了yes.com显示为valid之外,下面的代码可以正常工作,而我只需要接受这种格式ns1.yes.com,www.yes.com,接受数字,并且在nameserver的前面或结尾不接受破折号或点。请帮帮我 <html> <head> <title>Validate name server</title> <script type="text/javascript"> function validSubdomain()
yes.com
显示为valid
之外,下面的代码可以正常工作,而我只需要接受这种格式ns1.yes.com
,www.yes.com
,接受数字,并且在nameserver的前面或结尾不接受破折号或点。请帮帮我
<html>
<head>
<title>Validate name server</title>
<script type="text/javascript">
function validSubdomain() {
var re = /^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/;
var val = document.getElementById("nameserver").value;
if(val == ''){
alert("Please enter the name server");
return false;
}
if(re.test(val)) {
alert("valid format");
}
if(!re.test(val)) {
alert("invalid format");
}
}
</script>
</head>
<body>
Insert nameserver : <input name="txt_domain" id="nameserver" type="text" size="30" /> <input name="btn_validate" type="button" value="Validate" onclick="validSubdomain()" />
</body>
</html>
验证名称服务器
函数validSubdomain(){
变量re=/^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/;
var val=document.getElementById(“名称服务器”).value;
如果(val=''){
警报(“请输入服务器名称”);
返回false;
}
如果(重新测试(val)){
警报(“有效格式”);
}
如果(!重新测试(val)){
警报(“无效格式”);
}
}
插入名称服务器:
演示页面:将值按点分割,并计算结果部分
var parts = val.split('.');
if (parts.length < 3) { alert('invalid') }
var parts=val.split('.');
如果(parts.length<3){alert('invalid')}
您需要更明确地说明需要匹配的模式。我假设你想要3个字母数字的“单词”,用两个点隔开
此正则表达式将与您想要的匹配:
var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2}/
如果您想匹配主机中至少3个部分,例如“foo.bar.example.com”或“www.example.co.uk”,只需将末尾的量词修改为开放式:
var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2,}/
从你的问题来看,你似乎忘记了双破折号(或更多破折号)的可能性。
现在我知道有ccTLD连续接受多个破折号,但通常这是“禁止的”。您没有对主机的部件进行任何验证。例如,这将匹配“@@@@”如果有3个以上,它也将匹配。他已经有了验证。我不确定他到底想要3个还是至少3个。是的,非常感谢。你理解得对。这很有效。再次感谢。我很抱歉没有把我的问题说清楚。对不起,浪费了你的时间。我感谢你的帮助。