我正在构建测试验证,以确保输入了正确的部件号。每个部分从CAPS中的MR开始,然后是[SPACE],后跟三个数字。例如(MR 123)
问题是如果我似乎无法弄清楚如何使用jquery验证这一点。
部件号始终以MR开头。
var type = $("input#type").val();
// Check a that a tank type has been entered.
if( type.length < 5 && type.not().contain("MR")){
$("#error_upload").html("Please enter the tank number in a format MR XXX.");
$("#type").css({borderColor:'red'}).focus();
$("name,#file").css({borderColor:'#ccc'});
return false;
}
任何帮助都会很棒。
答案 0 :(得分:1)
我建议使用正则表达式。
if (type.match(/^MR\s[0-9]{3}$/){
...
}
基本上,它会查找MR,然后查找空格(\s
),然后查找3个数字([0-9]{3}
)。如果出现任何其他内容,则返回false。
答案 1 :(得分:1)
if (/^MR \d{3}$/.test(subject)) {
// Correct tank number format
} else {
// Incorrect tank number format
}
这样可确保输入的值始终仅为MR
+ [SPACE]
+ 3 digits
且仅为此。
答案 2 :(得分:1)
你可以去几条路线。
继续以这种方式编写验证
您希望您的代码可能类似于以下内容
var type = $("input#type").val();
// Check a that a tank type has been entered.
if(!/^MR \d{3}$/.test(type)){
$("#error_upload").html("Please enter the tank number in a format MR XXX.");
$("#type").css({borderColor:'red'}).focus();
$("name,#file").css({borderColor:'#ccc'});
return false;
}
将上述内容整合到jQuery Validate中,因为我假设您需要在其他地方进行验证
只允许3个数字并附加在'MR ' + type
上简化条目,因为每个数字都需要MR和空格,为什么要求用户输入呢?
var num = $("input#type").val()
, type;
// Check a that a tank type has been entered.
if(!/^\d{3}$/.test(num)){
$("#error_upload").html("Please enter the tank number with only digits.");
$("#type").css({borderColor:'red'}).focus();
$("name,#file").css({borderColor:'#ccc'});
return false;
}
else {
type = 'MR ' + num;
}
合并第2步和第3步,这会产生类似<input type="text" class="required digits" maxlength="3" minlength="3" />
的输入。这样可以减少复杂的数据输入,而不必担心简单的验证逻辑。这是我最喜欢的选择。
使用输入掩码防止用户开始犯错,但这是最“侵扰性”。