2012-11-13 160 views
1

好吧,我目前正在尋找一家網站,該網站有一家商店查找工具,商店查找工程與城鎮名稱和郵政編碼一起工作良好,但郵政編碼必須有一個空格。 例如'RG1 7UE',如果沒有空間E.g.將無法工作。 'RG17UE'Javascript郵政編碼驗證

所以我在文本框中有一些JS(見下文)來調整郵政編碼上的空白,並且工作很好,現在唯一的問題是JS會在if你在箱子裏輸入一個城鎮或城市。有沒有人有一個想法,我可以解決這個問題,以便我可以使用相同的文本輸入框爲城市和郵編?

感謝,

馬丁

<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

我的郵政編碼看起來沒有這樣的。你想要的郵政編碼規範是什麼?給用戶一個提示也是很好的。 – RobG

回答

1

只做替換如果輸入一個數字。

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

的作品,因爲郵政編碼總是有一個數字(是嗎?),但城市將永遠不會在他們的名稱中的數字。


但是,這就是說,這似乎是一個糟糕的設計。什麼樣的系統足夠靈活以通過相同的輸入來接受郵政編碼或城市,但對數據格式有嚴格的限制?如果這是嚴格的,它應該接受謹慎輸入的代碼。

+0

非常感謝!關於設計,是的,我知道這是一個漫長的故事。雖然感謝您的幫助! – nono

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'); 
}" >