Javascript邮政编码验证

时间:2012-11-13 00:36:05

标签: javascript jquery

好的,我正在开发一个有商店查找器的网站,商店查找器可以很好地处理城镇名称和邮政编码,但邮政编码必须有空格。 例如。 'RG1 7UE',如果没有空格,将无法工作。 'RG17UE'

所以我在文本框上有一些JS(见下文)来调整邮政编码上的间距,这很有效,现在唯一的问题是,如果你输入一个城镇,JS会放一个空格或盒子里的城市。有没有人知道如何解决这个问题,以便我可以为城市和邮政编码使用相同的文本输入框?

谢谢,

马丁

<input type="text" placeholder="Enter a postcode or town/city..." value="<?php echo $_POST['text'] ?>"  id="address" name="text" class="locator_inputform px192 search-box" onblur="this.value = this.value.replace(/ /g,'').replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' )">

2 个答案:

答案 0 :(得分:1)

如果输入中有数字,则只进行替换。

if (/\d/.test(this.value)) {
  this.value = this.value
    .replace(/ /g,'')
    .replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' );
}

有效,因为邮政编码总是有一个数字(对吗?),但城市的名字中永远不会有数字。


但是那说,这似乎是一个糟糕的设计。什么样的系统足够灵活,可以通过相同的输入接受邮政编码或城市,但强制严格限制数据格式?如果它是严格的,它应该接受谨慎输入的代码。

答案 1 :(得分:0)

对于任何想要这样做的人来说,这很棒!谢谢@AlexWayne

<input type="text" placeholder="Insert Postcode or Street Name and/or Town..." value="<?php echo $_POST['text'] ?>"  id="address" name="name" onblur="if (/\d/.test(this.value)) {
this.value = this.value
.replace(/ /g,'')
.replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' );
}" >