2011-02-08 76 views
2

我有一些數據(例如:'acs24','45','ds'等)。使用這些數據我有以下方法用正則表達式比較數據

function formatData(data) { 
    var rege = /^([A-Za-z0-9_\-\.])$/; 
    if (rege.test(data)) { 
     alert('Alpaha Numeric data'); 
    } 
} 

但是,這是行不通的。這個功能有什麼問題?

回答

1

因爲它僅匹配一個字符並且範圍無效。如果你想允許連字符,它需要是正則表達式列表中的最後一個字符,否則它將失敗,因爲_-.是無效範圍。

var rege = /^[A-Za-z0-9_.-]+$/;

編輯:嘛,我指出它,你已經改變了面前的問題。 :P

1

因爲它只匹配一個字符。

var rege = /^([A-Za-z0-9_\-\.]+)$/; 

這之一匹配至少一個字符。

額外的細節:括號在這裏沒有必要。他們雖然沒有傷害。

0

以下link有雁

反正答案是

「^ [A-ZA-Z0-9 _] + $」

你的正則表達式將搜索只有1個字符.. 。

+0

這也匹配一個空字符串。所以這是錯誤的。 – Raynos 2011-02-08 07:40:07

+0

@Raynos,感謝您指點它,需要使用*而不是+ ... – Alphaneo 2011-02-08 07:43:01

0

使用+匹配一個或多個字符

function formatData(data) { 
    var rege = /^([A-Za-z0-9_\-\.])+$/; 
    if (rege.test(data)) { 
     alert('Alpaha Numeric data'); 
    } 
} 
+0

在AlphaNumeric數據中,如何僅保留我需要在我的應用程序中使用的數字數據 – 2011-02-17 11:01:44