我正在使用JavaScript,如果有一个匹配1到6个数字的模式,后面跟着一个可选的.nn,我将非常感激。所以,最后我希望有一个函数,它对匹配如下模式的字符串返回True:
.nn
nn nnn nn.nn nnnnn.nn nnnn nnnnnn.nn nnnnnn
(其中n是数字)。谢谢!
n
lfapxunr1#
您可以使用/^\d{1,6}(.\d\d)?$/执行此操作,因此js看起来如下所示:
/^\d{1,6}(.\d\d)?$/
/^\d{1,6}(\.\d\d)?$/.test(str)
vjrehmav2#
以下方法有效:
^[0-9]{1,6}(\.[0-9][0-9])?$
在现代的正则表达式引擎中,你可以使用\d而不是[0-9],我只是考虑了最小公分母)。换句话说,这等价于:
\d
[0-9]
^\d{1,6}(\.\d\d)?$
{1,6}位用于指定前一个匹配出现1到6次(包括1到6次),并且X?与X{0,1}相同(换句话说,(\.[0-9][0-9])?表示句点后面紧跟两位数字,可以出现零次或一次)。
{1,6}
X?
X{0,1}
(\.[0-9][0-9])?
yk9xbfzb3#
请尝试以下正则表达式:
/\d{1,6}(?:\.\d\d)?/
根据@Justin的评论,这里是增强的reges:
/(?:^|\b)\d{1,6}(?:\.\d\d)?(?:\b|$)/
以确保仅匹配此数字,并以单词边界分隔。
nwo49xxi4#
请尝试以下操作:\w{1,6}(\.nn){0,1}您说的是数字,但显示的是nnnn.nn。以上是nnnn.nn的示例,但您可以通过以下方式轻松地更改为数字:
\w{1,6}(\.nn){0,1}
\d{1,6}(\.nn){0,1}
4条答案
按热度按时间lfapxunr1#
您可以使用
/^\d{1,6}(.\d\d)?$/
执行此操作,因此js看起来如下所示:vjrehmav2#
以下方法有效:
在现代的正则表达式引擎中,你可以使用
\d
而不是[0-9]
,我只是考虑了最小公分母)。换句话说,这等价于:{1,6}
位用于指定前一个匹配出现1到6次(包括1到6次),并且X?
与X{0,1}
相同(换句话说,(\.[0-9][0-9])?
表示句点后面紧跟两位数字,可以出现零次或一次)。yk9xbfzb3#
请尝试以下正则表达式:
编辑:
根据@Justin的评论,这里是增强的reges:
以确保仅匹配此数字,并以单词边界分隔。
nwo49xxi4#
请尝试以下操作:
\w{1,6}(\.nn){0,1}
您说的是数字,但显示的是nnnn.nn。以上是nnnn.nn的示例,但您可以通过以下方式轻松地更改为数字: