【发布时间】:2021-04-13 18:49:23
【问题描述】:
我正面临浮点数的正则表达式模式问题 -> 不应该以小数点结尾或星号..
我尝试过遵循正则表达式模式.. 那是
regex = /^\d*\.?\d*$/
//在做
regex.test(11.)
regex.test(.11)
//检查时返回true
// 我需要把它设为假,评论会很有帮助 谢谢。
【问题讨论】:
-
那是因为所有部分都是可选的。您可以使用
^\d+(?:\.\d+)?$来匹配可选的点和数字。 -
嘿@Thefourthbird,如果可以的话,你能纠正我吗?因为我需要理解它。谢谢!
-
在您的模式中,您使用
*表示 0 或更多,?表示 0 或 1。因此它也可以匹配例如单个点或空字符串。因此,您必须至少匹配一个数字,然后是一个与点和数字匹配的可选部分,因此它也不能仅以点结尾。有像this page这样的例子有例子和解释stackoverflow.com/questions/308122/… -
11.将被解析为"11"字符串,.11将被解析为"0.11"。将值作为字符串传递并使用^\d+(?:\.\d+)?$。 -
正则表达式只对字符串进行操作,所以你传递给它的所有数字都被强制转换为字符串。
标签: javascript regex