关于数字的JavaScript正则表达式

时间:2014-04-27 08:25:57

标签: javascript regex

我有一个输入文本,它是一个只允许小数长度为3的数字文本,但不要求是十进制数字,点和十进制数不需要在那里,至少是一个整数

文字

至少1个整数

最大整数数字长度为2

至少1个十进制数

最大十进制数字长度为3

接受的情景

" 1"

" 11.1"

" 11.11"

" 11.111"

我是正则表达式的新手,这是我能得到的

/\d{1,2}\.{0,1}\d{0,3}/;

2 个答案:

答案 0 :(得分:1)

\d{2}d{3}\

正好匹配两个数字后跟正好三个次要d ...最后的反斜杠可能会导致模式编译错误或请求反斜杠继续执行这些序列。

\d{1,2}

匹配一个两个十进制数字(0-9)。

\d{1,3}

匹配一个,两个或三个十进制数字。

如果您需要匹配两个不同的序列,则需要使用|在两者之间进行组合:

\d{1,2}|\d{1,3}

然而,这没有多大意义,因为后者包括前者。

\d{1,2}\.\d{1,3}

匹配两位数,后续一位由一到三位数组成。但是如果句点及其后续数字作为一个整体是可选的,则需要先将其分组,然后才能将该组声明为可选:

\d{1,2}(\.\d{1,3})

正在对后一部分进行分组

\d{1,2}(\.\d{1,3})?

最终宣布该组是可选的。

如果要在字符串中匹配所有内容,则需要将其包装在锚点中以匹配字符串的开头和结尾

^\d{1,2}(\.\d{1,3})?$

答案 1 :(得分:1)

如果我理解正确的话,你可以按照以下方式进行:

^\d{1,2}(\.\d{1,3})?$

DEMO