2013-08-28 43 views
0

我正在使用jquery驗證引擎,並嘗試添加正則表達式的自定義驗證。正則表達式的數字,連字符和加號+

但如何設置它只允許數字,連字符和+符號?

我嘗試了不同的方法,如:

^[0-9a-zA-Z -+]+$ 
^[0-9a-zA-Z -\+]+$ 

但他們沒有工作,如果我把加號連字符後。爲什麼?

回答

3

在字符類的-(連字符),用於指示字符範圍(就像0-9指從09)。您可以逃避它,或把它在末端,使其正常工作:

^[0-9a-zA-Z\-+]+$ 

^[0-9a-zA-Z+-]+$ 

編輯:另外,我不知道你把空間在那裏。由於您的限制,我將其刪除,但如果需要,您可以將其添加回(在第二個正則表達式的連字符之前)。

1

連字符創建一個範圍(就像你0-9做你的情況,它產生於+一系列從太空(以ASCII/Unicode的順序),這是相當一串字符:。!"#$%&'()*+和空間本身

逃生連字符或把它在結束(除非你想接受空格刪除空格):

^[0-9a-zA-Z+-]+$ 
1

-在字符類特殊的意義事實上,你甚至使用它爲此您的a-zA-Z0-9組。

要使用連字符,要麼逃避它\-或者只是把它在類(右前]

0

結束試試這個正則表達式

^[0-9a-zA-Z+-]+$ 
+0

一)這將匹配任何串。如在中,沒有字符串可以使這種模式失敗b)不區分大小寫的標誌是多餘的(或者「A-Z」是)。 c)模式中有兩個空格(我認爲OP甚至不需要那裏的空間)。 d)字符類包含從空格到下劃線的範圍,其中包括[幾乎所有其他可打印的ASCII字符](http://www.asciitable.com/)e)(請在你的模式中包含一個解釋)[http:// meta.stackexchange.com/questions/177757/are-answers-that-just-contain-a-regular-expression-pattern-really-good-answers) –

+0

好的,謝謝@ m.buettner向我解釋程序 –

+0

我編輯了我的代碼我看到我以前的答案和檢查,你現在我現在實現模式 –

相關問題