Javascript Regex允许十进制数不起作用

Javascript Regex允许十进制数不起作用,javascript,regex,Javascript,Regex,我使用正则表达式来允许十进制数,但它不接受十进制数。有人能告诉我正则表达式代码中的错误吗 export const ddd = (value) => value.replace(/[^\d]+(\.\d{1,2})?$/, '').slice(0,7); 预期产出为: 55.69 但我收到的实际输出是 5569不清楚你在问什么,但这可能会有所帮助 [^\d]+ Match one or more NON-digit ( Start capture group

我使用正则表达式来允许十进制数,但它不接受十进制数。有人能告诉我正则表达式代码中的错误吗

export const ddd = (value) => value.replace(/[^\d]+(\.\d{1,2})?$/, '').slice(0,7);
预期产出为: 55.69

但我收到的实际输出是
5569

不清楚你在问什么,但这可能会有所帮助

[^\d]+     Match one or more NON-digit
(          Start capture group
  \.       Literal .
  \d{1,2}  Match one or two digits
)?         End capture group, question mark indicates optional
$          End of string/line (depending on flags)

不清楚你在问什么,但这可能会有所帮助

[^\d]+     Match one or more NON-digit
(          Start capture group
  \.       Literal .
  \d{1,2}  Match one or two digits
)?         End capture group, question mark indicates optional
$          End of string/line (depending on flags)

这可能是一个更广泛的问题,如果你展示整个相关代码会更好。你的意思可能是
^\d+(\.\d{1,2})?$
因此,十进制数字应该以任意数量的非数字开头?你想做什么有点不清楚。@bhojendraauniya确实,即使它是一个拼写错误,并且OP的意思是将
^
放在大括号之外,那么它的预期输出仍然有点奇怪。如果整个值是一个十进制数,则会将其删除,并且您仍然会尝试从结果(空)字符串中提取前8个字符。这可能是一个更广泛的问题,如果您显示整个相关代码,则会更好。您可能指的是
^\d+(\.\d{1,2})?$
所以,十进制数应该以任意数量的非数字开头?你想做什么有点不清楚。@bhojendraauniya的确,即使它是一个打字错误和OP,意思是把
^
放在大括号外,那么预期的输出是什么还是有点奇怪。如果整个值是一个十进制数,那么它将被删除,并且您仍将尝试从结果(空)字符串中获取前8个字符。