乘以正则表达式匹配并将它们替换为字符串
我正在尝试使用正则表达式替换来乘以食谱中的数量。
示例 HTML 代码
<div id="ingredients">
<ul>
<li>2 bananas, sliced</li>
<li>1 cup frozen strawberries</li>
<li>8 oz. low fat vanilla yogurt</li>
</ul>
</div>
这是我到目前为止得到的 。我正在尝试找到一种方法来乘以匹配的数字,然后用相乘的数字替换旧的:
var str = document.getElementById('ingredients').innerHTML;
var regex = /[0-9]+(?:\.[0-9]*)?/g;
str = str.replace(regex, "$&" * 2);
console.log(str)
但这就是我得到的输出:
<ul>
<li>NaN bananas, sliced</li>
<li>NaN cup frozen strawberries</li>
<li>NaN oz. low fat vanilla yogurt</li>
</ul>
任何人都可以为我指出如何转换“$&”的正确方向吗?到一个浮点数,这样我就可以乘以它?
非常感谢!
I'm trying to multiply the amounts in a recipe using regex replace.
Here is the example HTML code
<div id="ingredients">
<ul>
<li>2 bananas, sliced</li>
<li>1 cup frozen strawberries</li>
<li>8 oz. low fat vanilla yogurt</li>
</ul>
</div>
I got as far as here. I'm trying to find a way to multiply the matched number and then replace the old one with the multiplied one:
var str = document.getElementById('ingredients').innerHTML;
var regex = /[0-9]+(?:\.[0-9]*)?/g;
str = str.replace(regex, "amp;" * 2);
console.log(str)
But this is the output I get:
<ul>
<li>NaN bananas, sliced</li>
<li>NaN cup frozen strawberries</li>
<li>NaN oz. low fat vanilla yogurt</li>
</ul>
Can anyone please point me to the right direction on how to convert "$&" to a float so I can multiply it?
Many thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须先将字符串解析为数字,然后才能将其相乘:
您不能在 javascript 中相乘字符串!
You have to parse string as a number before you can multiply it:
You cannot multiply strings in javascript !