2010-12-01 57 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 
} 
相关问题