Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中拆分带有多个逗号和冒号的字符串?_Javascript_Regex - Fatal编程技术网

如何在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. 您

如何在JavaScript中使用多个分隔符拆分字符串?我尝试在逗号和
冒号上拆分,但是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