我正在尝试使用正则表达式来匹配零后跟一个点和正好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"值?或者有更好的方法来解决这个问题吗?
您可以使用捕获组:
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的反向引用| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |