用于检查字符串(如x.0.0)的Javascript正则表达式

用于检查字符串(如x.0.0)的Javascript正则表达式,javascript,Javascript,我有以下资料: if (/0\.0$/.test(text)) 1.10.0 2.10.0 我正在使用此选项成功检查以0.0结尾的文本,例如: 1.0.0 2.0.0 3.0.0 但是,它也适用于以下方面: if (/0\.0$/.test(text)) 1.10.0 2.10.0 有没有办法改变这个表达式,使其只对前3个值为真,而不对后2个值为真 以下是我的完整代码: if (/0\.0$/.test(text)) pad = 10;

我有以下资料:

    if (/0\.0$/.test(text))
1.10.0
2.10.0
我正在使用此选项成功检查以0.0结尾的文本,例如:

1.0.0 
2.0.0
3.0.0
但是,它也适用于以下方面:

    if (/0\.0$/.test(text))
1.10.0
2.10.0
有没有办法改变这个表达式,使其只对前3个值为真,而不对后2个值为真

以下是我的完整代码:

    if (/0\.0$/.test(text))
        pad = 10;
    else if (/\.0$/.test(text))
        pad = 35;
    else
        pad = 60;
    tdToPad.css('margin-left', pad);

对于文本为2.10.0的情况,应该用35填充,但用10填充。

使用
/\.0\.0$/
有问题吗?

使用
/\.0\.0$/
有问题吗

if(/\.0\.0$/.test(text))
如果你想要一个开头的数字

if(/^\d+\.0\.0$/.test(text))
如果你想要一个开头的数字

if(/^\d+\.0\.0$/.test(text))

您的代码应该如下所示:

 if (/\d+\.0\.0$/.test(text)) // if number.0.0
        pad = 10;
    else if (/\d+\.[1-9]+\d+?\.0$/.test(text)) // if 0 at the end
        pad = 35;
    else
        pad = 60;
    tdToPad.css('margin-left', pad);

您的代码应该如下所示:

 if (/\d+\.0\.0$/.test(text)) // if number.0.0
        pad = 10;
    else if (/\d+\.[1-9]+\d+?\.0$/.test(text)) // if 0 at the end
        pad = 35;
    else
        pad = 60;
    tdToPad.css('margin-left', pad);

这个测试似乎通过了1.10.0,应该会失败。我建议在正则表达式前面加上文字句点只会匹配以下形式的字符串:foo.0.0如果你想确保第一个句点之前的东西是一个数字,使用类似于
/\d+\.0\.0$/
的东西。看起来这个测试通过了1.10.0,应该会失败。在我建议的正则表达式前面添加文字句点只会匹配以下形式的字符串:foo.0.0如果您想确保第一个句点之前的东西是一个数字,使用类似于
/\d+\.0\.0$/
的东西。也可以使用
/(?:\.0){2,}$/
也可以使用
/(?:\.0){2,}$/