从特定字符串中获取金额
Grab Amount from Specific String
我需要从字符串中获取所有金额,然后在java脚本中添加它们。我的字符串可以是,
"Discount 50GB + 1,000GB + Kit"
我的字符串格式是固定的,这意味着数量将在 GB 之前找到。我只需要抓住所有这些数量,然后添加它们。所以我得到的结果是 50 + 1000 = 1050
这将解决问题:
var arr = "Discount 50GB + 1,000GB + Kit".split('GB')
var b = arr[0].replace( /[^'d.]/g, '' );
var c = arr[1].replace( /[^'d.]/g, '' );
total = parseInt(b, 10) + parseInt(c, 10);
alert(total);
这将添加字符串 (DEMO) 中的每个 GB:
var sum = 0;
var arr = "Discount 50GB + 1,000GB + 7GB + 9GB hello 8GB Kit 10GB 10GB d".split('GB');
for (var i = 0 ; i<arr.length-1; i++) {
var x= arr[i].replace( /[^'d.]/g, '' );
var b = parseInt(x,10)
sum += b;
}
alert(sum);
您在下面的评论中提到也可能有"Gb"。您可以使用它来获取"GB"的结果"不区分大小写"(演示)
var sum = 0;
var search = "gb";
var regEx = new RegExp(search, "ig");
var replaceMask = "GB";
var result = 'Discount 50Gb + 1,000Gb + 7Gb + 9Gb hello 8gb Kit 10GB 10GB 5gb d'.replace(regEx, replaceMask);
var arr = result.split('GB');
for (var i = 0 ; i<arr.length-1; i++) {
var x= arr[i].replace( /[^'d.]/g, '' );
var b = parseInt(x,10)
sum += b;
}
alert(sum);
快速脏单行样式 XD
var str = "Discount 50GB + 1,000GB + Kit";
str.replace(/[^'+'d]/g,'').split('+').reduce(function(a, b) { return (+a) + (+b) })
解释:
- 修剪所有不是数字或加号的字符 (
+
) - 用加号 (
+
) 拆分修剪后的字符串,因此我们得到类似数字的字符串数组(和空字符串) - 在
reduce
方法中,将类似数字的字符串转换为实数并求和,而+""
则变为数字0
。
编辑:这是一个与以前不同的liitle。
var str = "Discount 50GB + 1,000GB + Kit + 60GB 80GB 10Gb";
str.replace(/[^'d's]/g,'').split(/'s+/).reduce(function(a, b) { return (+a) + (+b) })
解释:
- 修剪所有不是数字或空格的字符(单词分隔符)
- 用空格间隙(一个或多个连续的空格)拆分修剪后的字符串,因此我们得到类似数字的字符串数组(也许是空字符串)
- 在
reduce
方法中,将类似数字的字符串转换为实数并求和,而+""
则变为数字0
。
为了更加小心和保证,您选择的答案也很好。
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 货币代码为欧元-金额的格式不应包含小数
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在输入字段中将最小金额设置为
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- 获取唯一值并使用javascript计算金额总和
- 如何从MomentJS获取DST金额
- 获取每行的总金额
- 从特定字符串中获取金额
- 用Javascript从带有输入标题的单选按钮中获取金额
- 使用Javascript获取每个模式的总金额
- 使用stripe API从stripe令牌获取收费金额
- 获取current_user的金额,可通过 js.erb 部分访问