我有一个{YYYY} - {MM}格式的表达式,我有一个文本框,我将在其中收集用户的输入。
用户必须以上述格式输入,例如:{2010} - {03}或{10} - {3}或{2010} - {3}
如何使用JavaScript验证?
谢谢
答案 0 :(得分:2)
你必须使用正则表达式。的 See this. 强>
答案 1 :(得分:1)
为了向Sarfraz回答一些细节,你的例子会给出这个正则表达式
var str = "2010-03".match(/\{\d{2,4}\}-\{\d{1,2}\}/g);
如果匹配,它将为您提供匹配部分的数组。
答案 2 :(得分:1)
if ( /{\d{2,4}}-{\d{1,2}}/.test( str_date ) == true ) {
// ok
}
else {
// fail
}
答案 3 :(得分:0)
您将输入与正则表达式匹配:
if(myInput.value.match(/\{\d+\}-\{\d+\}/)) {
// input validated
} else {
// validation failed
}
此正则表达式可根据您的需要进行调整。这是javascript regexp的快速教程:http://www.w3schools.com/js/js_obj_regexp.asp。
此外,如果您想检查输入是否代表有效日期,您还需要做一些额外的工作。看起来你接受任何看起来像一个月的东西,所以你可以试试这个:
if(myInput.value.match(/\{(\d+)\}-\{(\d+)\}/)) {
var year = parseInt(RegExp.$1);
var month = parseInt(RegExp.$2);
if(month<1 || month>12) return false;
if(year < 100) year += 2000;
if(year > 3000) return false;
return true;
} else {
// validation failed
return false;
}