2012-09-10 116 views
1

我需要一個正則表達式只允許數字+以下字符(+()正則表達式不工作

我已經這樣做了:

^-{0,1}\d+$ 

但這僅取號..我們如何爲文字記錄者編寫它?

+1

能否請您詳細闡述什麼是允許的形式'+ 1','? - 1','(1)'?您可以嘗試'/^[ - +()]?\ d + $ /'但您需要詳細說明。 –

+0

允許數字和+,空格,(,) – PeteEngineer

+0

字符串可以不是但空格,或'++++'等? –

回答

2

嘗試以下操作:

^[0-9-.+()]+$ 
+0

這將如何工作..?它需要特殊字符之前的轉義字符,以使其工作..「(」「應該是」\(「' –

+0

@Vishal不在裏面一個字符組 – tomsv

+0

@VishalSuthar,你只是部分正確。正常的正則表達式特殊字符它們在角色類中的特殊含義。所以,不需要逃避,例如一個'('),但是字符類有一些新的特殊字符,例如'-'作爲範圍運算符,在這種情況下它將在這裏工作而不會溢出(特殊情況直接在一個範圍之後),但是通常避免錯誤範圍破折號應該逃脫或放在課程的開始或結束。 – stema

2

這將是解決辦法:

^[0-9\+\s\(\)]+$ 

Regex Demo

0

你需要的是一個字符類。你可以用方括號[]來定義一個。然後,將所有這些字符,範圍或預定義的速記類添加到您的角色類中。

[-+\d() ] 

這樣的角色類然後將匹配類成員中的一個字符。

您可能需要閱讀regular-expressions.info或有關基本的正則表達式的功能一個真正的簡要概述有關字符類的更多詳細信息,我blog post "What absolutely every Programmer should know about regular expressions