2012-03-01 92 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}