Javascript 验证文本输入以匹配加拿大邮政编码(例如“A1S2S3”)

Javascript 验证文本输入以匹配加拿大邮政编码(例如“A1S2S3”),javascript,jquery,regex,Javascript,Jquery,Regex,此处错误为无法输入任何字符: $(document).ready(function() { $('#t').keypress(function(e){ var txt = String.fromCharCode(e.which); console.log(txt + ' : ' + e.which); if(!txt.match(/^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/)){

此处错误为无法输入任何字符:

$(document).ready(function() {
  $('#t').keypress(function(e){
    var txt = String.fromCharCode(e.which);
    console.log(txt + ' : ' + e.which);
    if(!txt.match(/^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/)){
      return false;
    }
  })
});

模式
属性现在得到广泛支持。因此,您只需将其添加到


您可以这样做:

<input type="text" id="postCode" placeholder="Enter postcode">
<span id="result"></span>

var pattern = /[ABCEFGHJKLMNPRSTVXY][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9]/,
$result = $("#result");

$('#postCode').keyup(function(){
  var val = this.value
  if(!val.match(pattern)){
    $result.text("invalid");
  } else {
    $result.text("valid");      
  }
});

var模式=/[ABCEFGHJKLMNPRSTVXY][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9]/,
$result=$(“#result”);
$(“#邮政编码”).keyup(函数(){
var val=此值
如果(!val.match(模式)){
$result.text(“无效”);
}否则{
$result.text(“有效”);
}
});

这里有一个

我只想添加一个\s*?在前3个字符和后3个字符之间,为了说明在这两个字符之间写空格的常见用法。就像北极的邮政编码一样:H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H。不过,我相信这可能需要一些工作。但是如何限制文本框中与正则表达式不匹配的输入…?在提交表单时验证表单。不要试图马上做这件事。
<input type="text" id="postCode" placeholder="Enter postcode">
<span id="result"></span>

var pattern = /[ABCEFGHJKLMNPRSTVXY][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9][ABCEFGHJKLMNPRSTVWXYZ][0-9]/,
$result = $("#result");

$('#postCode').keyup(function(){
  var val = this.value
  if(!val.match(pattern)){
    $result.text("invalid");
  } else {
    $result.text("valid");      
  }
});