2010-12-01 59 views
3

我不知道我怎麼會寫一個正則表達式,說「和NO whitespaces'.I需要實現這個if語句下面,請看下圖:如何編寫一個正則表達式,說'和無空格'?

$('#postcode').blur(function(){ 
    var postcode = $(this), val = postcode.val(); 

    if((val.length >= 5) && (*******)){ 
     postcode.val(val.slice(0, -3)+' '+val.slice(-3)).css('border','1px solid #a5acb2'); 
    }else{ 
     $(this).css('border','1px solid red'); 
    } 
}); 

任何幫助是極大的讚賞,感謝

回答

4

試試這個:

&& (!val.match(/\s/)) 

match回報null如果沒有空間(或者至少有一個空格),所以你可以使用它作爲一個條件。

+1

如果你真的想,你可以將長度檢查合併到使用`如果(val.match(正則表達式/^\ S {5,} $ /))`(注意大寫字母S),但我不確定它會更好。 – Kobi 2010-12-01 10:31:16

+0

這很好,謝謝萬億 – Nasir 2010-12-01 10:35:32

1
&& (val.indexOf(" ") == -1) 

注意:如果有其他選項可用,則不應使用正則表達式。

+0

是的,但`\ s`也檢查標籤和換行符。通常人們把````稱爲「空格」,其餘的部分稱爲「空格」,但它是正常空格的更好解決方案。 – Kobi 2010-12-01 10:26:40

1

你可以在同一個正則表達式中猜測(猜測郵編是數字)。

('1234567').match(/^\d{5,}$/) // ['1234567'] 
('1234').match(/^\d{5,}$/) // null 
('12 34').match(/^\d{5,}$/) //null 
('123 4567').match(/^\d{5,}$/) //null 

所以不是:

if((val.length >= 5) && (*******)){ 
    //code 
} 

使用:

if(val.match(/^\d{5,}$/)) { 
    //code 
} 
相關問題