如何在javascript中拆分带有多个逗号和冒号的字符串?
如何在JavaScript中使用多个分隔符拆分字符串?我尝试在逗号和如何在javascript中拆分带有多个逗号和冒号的字符串?,javascript,regex,Javascript,Regex,如何在JavaScript中使用多个分隔符拆分字符串?我尝试在逗号和:冒号上拆分,但是js的拆分函数只支持一个分隔符 例如: materialA:125,materialB:150,materialC:175 我想将这两个值拆分为数组,如下所示 materiaA,materialB,materialC 第二 125,150,175 或者任何人都能告诉我,我怎么能把这些数字乘以一个常数,得到 materialA:1250, materialB:1500,materialC:1750. 您
:
冒号上拆分,但是js的拆分函数只支持一个分隔符
例如:
materialA:125,materialB:150,materialC:175
我想将这两个值拆分为数组,如下所示
materiaA,materialB,materialC
第二
125,150,175
或者任何人都能告诉我,我怎么能把这些数字乘以一个常数,得到
materialA:1250, materialB:1500,materialC:1750.
您可以先用逗号分割字符串,然后在生成的数组中循环。在该数组中,每个条目都类似于“materialA:125”。从这里开始,您可以按冒号拆分,并将每个部分附加到自己的列表中,或者如果愿意,只需将后一半(先转换为int)相乘,然后将其重新连接到原始字符串中 尽管有人给出了一个更好的答案,但这里有一段代码实现了我上面提到的(因为你问过)
如果使用正则表达式,则可以使用多个分隔符拆分:
.split(/:|,/)
这将给
["materialA", "125", "materialB", "150", "materialC", "175"]
您可以简单地使用以下正则表达式:
/[:,]/
和以下字符串方法:
mystring = 'materialA:125,materialB:150,materialC:175';
result = mystring.split(/[:,]/);
下面是一个。完全改变方法,如果您只想将字符串中的所有数字乘以一个固定的系数,您可以使用
字符串。替换:
var string = "materialA:125,materialB:150,materialC:175";
var coef = 10;
var result = string.replace(/\d+/g, function(match){
return parseInt(match)*coef;
});
然后打印(结果)
输出字符串
materialA:1250,materialB:1500,materialC:1750
\d
是使用@mitim方法的[0-9]
示例的快捷方式:
var str = 'materialA:125,materialB:150,materialC:175',
multiplier = 2;
str = str.split(',').map(function (elem) {
var parts = elem.split(':');
parts[1] *= multiplier;
return parts.join(':');
}).join(',');
这将为您提供:
materialA:250,materialB:300,materialC:350
是的,但我的问题和疑问不同!你应该能够通过这个问题中提供的答案来找出你的答案。是的,mitim,但是你能给我一些例子来解释一下吗,因为我对javascript还不熟悉。我很欣赏你的答案,它工作得很好,给我这个结果materialA:50,materialB:50,materialC:50但我怎么能用常数乘以这些数字……就像乘以10给了我materialA:500,materialB:500,materialC:500一样,我不知道你能传递一个正则表达式(也不知道| char)。我学到了一些新的东西。一个比我的更好更紧凑的版本:)谢谢罗宾,它工作得很好。我确实想要这个结果。谢谢。。
materialA:250,materialB:300,materialC:350