我有一个输入。我需要验证值是否以“T”开头,后跟数字或“TP”后跟数字 可接受的值:T12345或TP12345
我的JavaScript代码
var ip_value = document.getElementById('PROMASTER_NO_FW').value;
var v_first_char = ip_value.substr(0, 1);
var v_second_char = ip_value.substr(1, 1);
if (v_first_char.toUpperCase() !== 'T') {
alert('It must be start with T');
return false;
} else {
if (v_second_char.toUpperCase !== 'P' && isNaN(Number(v_second_char))) {
alert('error2');
return false;
} else {
return true;
}
}
答案 0 :(得分:1)
function myFunction() {
var ip_value = document.getElementById('test').value; //'AB12345';
var v_first_char = ip_value.substr(0, 1);
var v_second_char = ip_value.substr(1, 1);
if (v_first_char.toUpperCase() !== 'T') {
document.getElementById("error").innerHTML = 'It must be start with T';
} else if (v_second_char.toUpperCase() !== 'P' && isNaN(Number(v_second_char))) {
document.getElementById("error").innerHTML = 'error2';
} else {
document.getElementById("error").innerHTML = 'no error';
}
}
It will work on blur <br />
<input type="text" id="test" onblur="myFunction()">
<span id="error">No Error</span>
我认为你的逻辑是完美的,应该可以正常工作,你只需要改变:
v_second_char.toUpperCase
to
v_second_char.toUpperCase()
in last if condition
最终代码
var ip_value = document.getElementById('PROMASTER_NO_FW').value;
var v_first_char = ip_value.substr(0, 1);
var v_second_char = ip_value.substr(1, 1);
if (v_first_char.toUpperCase() !== 'T') {
alert('It must be start with T');
return false;
} else {
if (v_second_char.toUpperCase() !== 'P' && isNaN(Number(v_second_char))) { //change in this line
alert('error2');
return false;
} else {
return true;
}
}
或者对于短代码,您可以使用正则表达式,如上面的答案所示。
答案 1 :(得分:0)
您可以使用正则表达式来实现您的方案。
var reg = new RegExp(/^TP?[0-9]+$/)
if((string).match(reg))
return true
else
return false
if
语句中的条件也可用于从提供的原始字符串中检索匹配字符串。
答案 2 :(得分:0)
对正则表达式进行模式匹配是最好的选择。当且仅当ip_value
是'T'或'TP'后跟至少一个数字时,假设您返回true:
var ip_value = document.getElementById('PROMASTER_NO_FW').value;
var pattern = new RegExp(/^TP?\d+$/);
return pattern.test(ip_value);
/^TP?\d+$/
是正则表达式模式或简称正则表达式 - 如果您不熟悉正则表达式,则Javascript上下文中的一个很好的起点是MDN Regular Expressions Guide。