将所有出现的科学数字替换为常规数字
Replace all occurrences of scientific numbers with regular numbers
我有一个大的XML字符串,里面有正则和科学记数法的十进制值。我需要一种方法将所有指数值就地转换为常规表示法。
到目前为止,我已经将以下正则表达式放在一起,它抓取了指数数字的每个实例。
/-?'d+(?:'.'d*)?(?:[eE][+'-]?'d+)?/
我可以使用以下命令将它们转换为常规符号:
Number('1.255262969126037e-14').toFixed();
现在我该如何将它们放在一起;如何就地查找所有出现的科学记数法值并将其替换为常规记数法?
考虑以下输入:
<path class="arc" d="M1.3807892660386408e-14,-225.50000000000003A225.50000000000003,225.50000000000003 0 0,1 219.47657188958337,51.77146310079094L199.52415626325757,47.06496645526448A205,205 0 0,0 1.255262969126037e-14,-205Z">
我需要以下输出:
<path class="arc" d="M0,-225.50000000000003A225.50000000000003,225.50000000000003 0 0,1 219.47657188958337,51.77146310079094L199.52415626325757,47.06496645526448A205,205 0 0,0 0,-205Z">
>String.prototype.replace
不仅接受替换字符串,还接受替换函数:
可以将函数指定为第二个参数。在这种情况下, 函数将在执行匹配后调用。这 函数的结果(返回值)将用作替换 字符串。
将所有科学记数法值转换为普通记数法:
input.replace(/-?'d+('.'d*)?(?:[eE][+'-]?'d+)?/g, function(match, $1) {
// Count the number of digits after `.`,
// then -1 to delete the last digit,
// allowing the value to be rendered in normal notation
var prec = $1 ? $1.length - 1 : 0;
// Return the number in normal notation
return Number(match).toFixed(prec);
})
// => <path class="arc" d="M0.0000000000000138,-225.50000000000003A225.50000000000003,225.50000000000003 0 0,1 219.47657188958337,51.77146310079094L199.52415626325757,47.06496645526448A205,205 0 0,0 0.000000000000013,-205Z">
将所有浮点数(科学或正常)截断为整数:
var input = '<path class="arc" d="M1.3807892660386408e-14,-225.50000000000003A225.50000000000003,225.50000000000003 0 0,1 219.47657188958337,51.77146310079094L199.52415626325757,47.06496645526448A205,205 0 0,0 1.255262969126037e-14,-205Z">';
input.replace(/-?'d+(?:'.'d*)?(?:[eE][+'-]?'d+)?/g, function(match) {
return Number(match).toFixed();
})
// => "<path class="arc" d="M0,-226A226,226 0 0,1 219,52L200,47A205,205 0 0,0 0,-205Z">"
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 用数字单位替换字符串的一部分
- 正则表达式 jquery 将数字替换为链接
- Javascript正则表达式,用被操纵的数字替换数字
- Jquery/PunBB将数字替换为字符串
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 立即工作并将所有英文数字替换为阿拉伯数字的函数
- 将所有出现的科学数字替换为常规数字
- JavaScript正则表达式 - 用四舍五入的数字替换字符串中的所有浮点数
- 将分数替换为分数正则表达式,将数字替换为数字正则表达式
- 使用与使用string.replacement()的字符串相似的数字替换字符串
- 用数字替换表中的逗号点
- 需要一个输入数字替换
- 将url末尾的数字替换为递增的值
- Javascript - Regex:如何用相同的id加数字替换字符串中的id
- JavaScript:将json中的月份数字替换为月份名称
- 将数字替换为星号javascript/jquery
- 如何将正文中的数字替换为波斯数字
- 将数字转换为双十进制,在JavaScript中将数字替换为12个字母中的一个
- JavaScript - 用数字替换一些字母