2011-09-06 65 views
1

我正在尋找一個基本的正則表達式,刪除任何空間。我想用它來輸入郵政編碼。基本正則表達式來刪除任何空間

有些人在郵政編碼之後,之前或之間插入空格。

我現在在使用/^\d{5}$/。我想擴展它以包含空間移除。

這怎麼能改進?

+0

你用它來驗證嗎? –

回答

3

(我正在考慮要刪除字符串中的空格,而不是驗證它是否有效,甚至有空格)

您也可以替換一個或多個空格(全球)

/\s+/g 

沒什麼。

zip.replace(/\s+/g, ""); 

例如在我的瀏覽器的JS控制檯:

> " 02 1 3 4".replace(/\s+/g, ""); 
    "02134" 
+0

工作!你能結合我目前的正則表達式嗎? – Mohsen

+0

這取決於你的設計流程。如果您想先刪除空格然後驗證它,請應用我在此演示的內容,然後使用當前的正則表達式來查看輸入是否有效。現在,如果您想結合這些方法,即使同時使用空格來驗證它是否有效,請使用@Jacob Eggers的答案。 – sidyll

3

這裏是你可以用它代替當前的一個忽略任何及所有空格的正則表達式。

/^(\s*\d){5}\s*$/ 
+0

對我來說不符合「123 45」。我錯了嗎? – Mohsen

+0

爲什麼要投票? ---編輯---被刪除。 – sidyll

+1

@Mohsen:當然可以,試試'if(「123 45」.match(/ ^(\ s * \ d){5} \ s * $ /))console.log(「yes」);' – sidyll

0

如果你消毒表單輸入什麼的,它可能是最簡單的使用方法:

zip = zip.replace(/\D/g,'');

然後你可以驗證沒有一個正則表達式,只需使用.length財產上的字符串。

if(zip.length != 5) alert('failed!');