2012-03-01 98 views
3

我正在使用正則表達式來檢查小數點後的位數。帶有變量的正則表達式

這當它被用於兩個或三個數字,例如\d{2}\d{3}工作正常,但如果我需要通過一個變量,而不是23

如何將一個變量傳遞給模式?可能嗎?

+0

你必須建立正則表達式作爲一個字符串。 – Pointy 2012-03-01 09:15:05

+0

你能告訴我怎麼做,,,,,我怎麼建立 – freebird 2012-03-01 09:17:34

回答

3

您可以使用RegExp,比如;

 

//just an example though 
var i = 2; 
var pattern = new RegExp("\\d{"+i+"}$"); 
 
+0

雙反斜槓而不是一個。 – 2012-03-01 09:18:08

+0

哎呀,快速打字的問題..感謝兄弟.. – 2012-03-01 09:22:01

+0

這對我有效var no = 2; var rxDatePattern = new RegExp(「^(?:\\ d * \\。\\ d {」+ no +「})$」); – freebird 2012-03-01 09:50:55

1

您可以編寫一個函數,該函數使用您提供的參數生成您需要的數字或十進制數字的RegEx字符串。

+0

你能幫我一個例子,,,,因爲米相對較新的正則表達式 – freebird 2012-03-01 09:33:44

+0

函數getRegEx(int len){return「\ d {「+ len +」}「; },然後使用reg_ex = getRexEx(6)生成RegEx以生成RegEx以檢查6位十進制數字。您無法在RegEx中放置變量,您需要爲它們創建一個字符串。 – Odinn 2012-03-01 09:49:10

+0

感謝Odinn ,,,我明白你的例子..它幫助了我很多..謝謝 – freebird 2012-03-01 09:58:54

0

剛纔定義的數字範圍如何:\d{2,3}