匹配零后跟6个小数位

Jus*_*der 4 javascript regex

我正在尝试使用正则表达式来匹配零后跟一个点和正好6位数.如 - > 0.274538

6位数字可以是任意数字0-9.此外,在比赛之前或之后可能存在任何字符(包括空格).

我想修剪掉匹配的拖尾4位数,这样结果是零,然后是2位小数(即0.27).

我在Javascript字符串替换函数中使用此正则表达式.我包含了"g"修饰符,因为字符串中会有几个匹配项.

我对正则表达式不太满意,但我认为以下代码非常接近我需要的...

var replaced = string.replace(/[0]\.[0-9]{6}$/g, X);
Run Code Online (Sandbox Code Playgroud)

唯一的事情是......我不确定在这里使用什么'替换'值(X).如果预期只有一个匹配,那么我可以在替换的字符串上使用"slice".但由于我期待字符串中有几个正则表达式匹配,我应该将什么用于"X"值?或者有更好的方法来解决这个问题吗?

anu*_*ava 6

您可以使用捕获组:

var s = '0.274538'
var r = s.replace(/\b(0\.\d{2})\d{4}\b/g, '$1');
//=> 0.27
Run Code Online (Sandbox Code Playgroud)
  • \b 用于字边界.
  • (..)捕获组#1抓取,0然后是DOT和2小数点.
  • $1 是捕获的组#1的反向引用