如何在JavaScript中验证表达式?

时间:2010-03-09 07:57:39

标签: javascript validation

我有一个{YYYY} - {MM}格式的表达式,我有一个文本框,我将在其中收集用户的输入。

用户必须以上述格式输入,例如:{2010} - {03}或{10} - {3}或{2010} - {3}

如何使用JavaScript验证?

谢谢

4 个答案:

答案 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;
}