2010-08-24 66 views
2

我想驗證字符串是否僅包含a-z,0-9和符號。 - _ @和; 我有這樣的代碼:如何使用正則表達式匹配模式

var regex = new RegExp('[[email protected];_-]{8,}'); 

,不遠處就是我尋找,但它也返回true爲:°%」

'[email protected]使用jQuery的一個div來加載字符串,我把一些代碼更多:

var mailinglist= $('#mailinglist').val(); 
    var regex = new RegExp('\^[0-9a-z.-_;@]{8,}$\','i'); 

    if (mailinglist.match(regex)){} 
    else{} 

我需要比賽,如果存在空白空間或模式沒有定義任何其他字符返回false。

謝謝:-)

回答

7

添加字符串的開始和結束錨點。

var regex = /^[[email protected];_-]{8,}$/ 
//   ↑     ↑ 

而且,除非你有一些動態的圖案,喜歡的正則表達式字面/.../在從字符串new RegExp('...')構建一個RegExp對象。

+0

多少受騙者這個'^ ... $'問題已經存在了呢?其中一天,我希望能夠成爲這些人中的一個... – polygenelubricants 2010-08-24 09:02:36

+0

對我來說它不起作用,我用更多的代碼擴展話題 – Mike 2010-08-24 13:15:30

+0

@TrustWeb:'var regex =/^ [a- z0-9 @。; _-] {8,} $ /;'本身已經是一個有效的語句! **不要**使用新的RegExp! – kennytm 2010-08-24 13:23:36