2013-04-23 115 views
0

我遇到JavaScript正则表达式的问题。我想匹配实数数字形式1到5. Precission是两位数字。我的代码是,但它不起作用。在JavaScript中匹配数字范围的正则表达式

function validate_prosjek(nmb) 
{ 
    var pattern= new RegExp(/[1-4]\.[0-9][0-9]|5\.00/); 

    return pattern.test(nmb); 
} 

它承认大于5

+1

http://www.regular-expressions.info/floatingpoint.html – 2013-04-23 22:12:11

+0

请注意,没有任何与jQuery有关,这是所有Javascript功能。这些信息可以帮助您搜索下次要查找的内容。 – 2013-04-23 22:16:23

+0

适用于我的机器。经过http://regexpal.com/ – 2013-04-23 22:16:56

回答

2

您需要的“锚”与^$你的正则表达式匹配的分别字符串的开头和结尾,较高的实数:

var pattern = /^([1-4]\.[0-9][0-9]|5\.00)$/; 

您还需要转义.,因为它是正则表达式中的一个特殊字符,如果正则表达式已在/.../ synax中,则不需要调用new RegExp

+0

@MikeM好的,所以它 - 我发现了一个测试用例,它没有工作。 – Alnitak 2013-04-23 22:21:50

+0

/^[1-4]\.[0-9][0-9]|^5\.00$/ – 2013-04-23 22:23:32

+0

Final version.Work罚款。如果第二个数字是5并且数字大于10(如15.00 25.00等),那么你的失败 – 2013-04-23 22:24:03