使用Javascript正则表达式从字符串末尾删除int和float

使用Javascript正则表达式从字符串末尾删除int和float,javascript,regex,Javascript,Regex,我找到了一个几乎完美的答案,但我需要稍微调整一下。我已经阅读了regex的基础知识,我正在使用它,但我想不出来 使用“string.replace(/\d+$/,“”)我可以删除字符串末尾的任何数字。但是,我还需要删除任何格式为十进制的数字,如#.或##.以及整数,但是仅当它们出现在字符串末尾时才删除。从regex101中,我发现$是用于字符串末尾的 我可以使用.replace(/\d+([.]\d+)?/g)删除数字和浮点数,但它会从整个字符串中删除它们,不仅仅是在它们出现在末尾时,而且我无法

我找到了一个几乎完美的答案,但我需要稍微调整一下。我已经阅读了regex的基础知识,我正在使用它,但我想不出来

使用
“string.replace(/\d+$/,“”)
我可以删除字符串末尾的任何数字。但是,我还需要删除任何格式为十进制的数字,如
#.
##.
以及整数,但是仅当它们出现在字符串末尾时才删除。从regex101中,我发现
$
是用于字符串末尾的

我可以使用
.replace(/\d+([.]\d+)?/g)
删除数字和浮点数,但它会从整个字符串中删除它们,不仅仅是在它们出现在末尾时,而且我无法确定将
$
放在哪里,因为我还不太了解regex,也无法让它工作

这似乎是一个小而愚蠢的问题,但我会感谢你的帮助

谢谢

您可以使用

.replace(/\d+(?:\.\d+)?$/, '')
模式匹配

  • \d+
    -一个或多个数字
  • (?:\。\d+)
    -一个非捕获组(
    ?:
    使其成为非捕获组,也就是说,您无法访问此组捕获的值),该组匹配一个可选的
    和1+位序列
  • $
    -字符串结束
若要删除数字前的任何0+空格,请在模式开始处添加
\s*
(其中
\s
匹配任何空格,
*
量词使正则表达式引擎匹配(连续)0个或更多与此模式匹配的字符)


请参阅。

您似乎需要
。替换(/\d+(?:\。\d+)$/,“”)
@WiktorStribiż新的谢谢您,太好了!我不明白,但它确实有用,谢谢。我将阅读更多关于正则表达式的内容。还有另一个/(\d+\.\d+$\124;\ d+$/为什么您接受的答案不能正确解析整数/小数<代码>(?:\d+(?:\。\d*)?\。\d+$-1@sln因为我对它进行了测试,并在一个实例上对我有效。更多参考资料:。