Javascript 仅限数值
可能重复:Javascript 仅限数值,javascript,regex,Javascript,Regex,可能重复: 我对regex不熟悉。 请帮助编写仅用于数值的模式(对于JavaScript) 仅限数值 允许小数点“ 没有逗号 谢谢 查看这里的示例,了解浮点数正则表达式示例 使用此正则表达式: ^\d+(\.\d+)?$ 下面是一个在JavaScript中使用各种正则表达式的示例。您的特定表达式如下所示: /^[-+]?[0-9]+(\.[0-9]+)?$/ 我建议使用以下代码来检查它是否是有效的浮点数,而不是使用正则表达式并处理浮点数的所有排列: var s = ".45"; var d
我对regex不熟悉。 请帮助编写仅用于数值的模式(对于JavaScript)
谢谢 查看这里的示例,了解浮点数正则表达式示例
使用此正则表达式:
^\d+(\.\d+)?$
下面是一个在JavaScript中使用各种正则表达式的示例。您的特定表达式如下所示:
/^[-+]?[0-9]+(\.[0-9]+)?$/
我建议使用以下代码来检查它是否是有效的浮点数,而不是使用正则表达式并处理浮点数的所有排列:
var s = ".45";
var d = parseFloat(s);
if (!isNaN(d))
alert("valid float: " + d);
如果你必须有一个正则表达式,那么我建议:
/^[-+]?(?=.)\d*(?:\.\d+)?$/
您是否试图匹配十进制数字或IP地址,如数字和句点序列?@anubhava它匹配一个空字符串。小数点之前是否允许没有数字?是否允许有前导零,例如0001?你的要求不够。我们很乐意帮助您编写正则表达式,但您的问题更多的是“为我编写正则表达式”,您可以看看是否从
parseFloat
中获得了有效的数字?当然它会从“34.4134asd”
(34.4134
)中得到一个有效的数字,但这有关系吗?以后,请编辑新信息您的原始问题,请不要在一个问题中问同一问题的金额。在我们的网站上,问题的重复确实很受欢迎。谢谢。@anubhava,问题没有告诉你这个数字是否有效……问题没有说清楚,但.28
和.15
确实都是有效的数值。@anubhava,这取决于用户界面设计、业务逻辑等。你会读心术吗?不,先生,这不是关于任何人的思想。根据算术.28
,.59
,-.5
和.15
都是有效的数值。@anubhava,0.28
like.28
like0x10
只是数字的字符串表示。谢谢!如果我需要允许一个逗号且数字仅为正数,我将如何更新正则表达式?为此,您可以简单地使用:/^\+(?=)(?:\d+,)?\d*(?:\。\d+)$/
谢谢!如果我需要允许一个逗号,并且数字只能是正数,我将如何更新正则表达式?@ihtus类似的操作可能会执行:/^[0-9]+(,[0-9]+)?(\.[0-9]+)?$/