我有一个表单,其中有两个输入框:一个是主机名,另一个是IP地址。在提交表单之前,如何验证这两个字段,并且如果它们与其模式不匹配,则显示错误。例如:输入正确的主机名。以下是模式:
Host : ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$
Ip : ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
这是我的代码片段,但它无法正常工作:
$('#hosti').focusout(function() {
$('#hosti').filter(function() {
var hosti = $('#hosti').val();
var hostiback = $('#hosti');
var hostiReg = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/;
if (!hostiReg.test(hosti)) {
$('#hosti').css('boxShadow', '0px 0px 2px 1px #E25249');
} else {
$('#hosti').css('boxShadow', '0px 0px 0px 0px #E25249');
}
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<form>
HOST :
<input type="text" placeholder="Host" id="hosti" pattern="/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/"/>
IP ADDRESS :
<input type="text" placeholder="IP Address" pattern="/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/"/>
<button type="submit">Submit</button>
</form>
required
属性。 - A. Wolffpattern
正则表达式不应包含/
分隔符。为了显示错误消息,input
必须具有title
属性。 - Wiktor Stribiżew