正则表达式为true时返回false

时间:2019-09-12 07:57:51

标签: javascript regex

我正在尝试使用onblur函数来验证使用正则表达式表达式进行测试的邮政编码字段,但是当它应该返回true时,它将返回false。 JS小提琴:https://jsfiddle.net/gzr5csu4/2/

function validatePostcode(){
    alert("onblur triggered!");
  var postcodeRegEx = /^5[0-9]{3}$/; 
  var postcodeResult = postcodeRegEx.test(postcode);
  if (postcodeResult == false){
    alert("Postcode is not valid!");
  } 
  return true;
}

我看不出为什么它不起作用,我对Java脚本还很陌生,所以可能缺少了一些非常简单的东西。 在将“ 5251”设置为邮政编码时会触发onb​​lur函数,但在不应该的情况下会返回false。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您缺少声明和设置postcode

添加此var postcode = document.getElementById("postcode").value;

函数应如下所示:

function validatePostcode(){
    alert("onblur triggered!");
  var postcode = document.getElementById("postcode").value;
  var postcodeRegEx = /^5[0-9]{3}$/; 
  var postcodeResult = postcodeRegEx.test(postcode);
  if (postcodeResult == false){
    alert("Postcode is not valid!");
  } 
  return true;
}