我想使用正则表达式匹配字符串末尾的数字。例如,字符串可能看起来像:
var foo = '101*99+123.12'; // would match 123.12
var bar = '101*99+-123'; // would match -123
var str = '101*99+-123.'; // would match -123.
这是我目前的代码,但如果没有小数点,它似乎会匹配整个字符串:foo.match(/\-?\d+.?\d+?$/);
我理解为:
\-?
:可选的“-”符号\d+
:1个或多个数字.?
:可选的小数点\d+?
:小数点后可选的1个或多个数字$
:匹配字符串末尾
我还漏掉了什么吗?
.
意味着“任何字符”(基本上),而不是“句点”;我认为你应该转义它,写成\.?
。这可能不是唯一的问题,只是我在你描述正则表达式时注意到的。 - Ianx*y+z
吗? - Xotic750