我从数据库中得到的结果是'2,3,7'
,现在我想从字符串中删除'
(单引号)并以2,3,7
的形式获取输出
我的意图是将此值用作[2,3,7]
之类的数组。但是由于它是字符串,所以它像['2,3,7']
一样存储。
我尝试使用parseInt
将其转换为整数,但是在这种情况下,它给了我第一个索引值,即2。
因此,基本上输入像'2,3,7'
一样,预期的输出像2,3,7
一样。
更新: 我可以看到许多人正在将输入视为“'2,3,7'”,将输入视为“ 2,3,7”。 我也有一个可行的解决方案:
var str = '2,3,7',finalOutput=[];
var splittedValues = str.split(",");
splittedValues.forEach((value) => {
finalOutput.push(parseInt(value));
});
有没有直接的方法可以做到这一点。
谢谢。
答案 0 :(得分:1)
使用正则表达式 match()
演示:https://regex101.com/r/JhTkVB/1
var string = "'2,3,7'"
console.log(string.match(/\d+/g).map(Number));
答案 1 :(得分:1)
执行所需操作的最简单方法是:
let str = '2, 3, 7';
let yourArray = str.split(',').map(Number);
console.log(yourArray);
这将用逗号分隔,然后使用map函数,该函数使用作为参数提供的函数转换数组中的每个值,并将它们存储在新数组中。因此,在这种情况下,函数Number
被称为三次,其参数为'2'
,'3'
和'7'
。 Number
是数字对象的构造函数,该对象也将字符串解析为数字。然后将所得的数组存储在yourArray
中,该数组的值为[2, 3, 7]
。
答案 2 :(得分:0)
您可以删除第一个和最后一个字符。
var string = "'2,3,7'",
values = string.slice(1, -1);
console.log(values);
答案 3 :(得分:0)
这是删除包含单引号的另一种方法-
var str = "'2,3,7'",
str = str.substring(1, str.length - 1)
console.log(str);
//If you need an array then
str = str.split(',').map(Number)
console.log(str);
答案 4 :(得分:0)
根据您的更新,好像您的输入字符串只是'2,3,7'
。要将其转换为数字数组,可以使用JSON.parse()
,方法是将字符串封装在方括号中,如下所示:
const str = '2,3,7';
const arr = JSON.parse(`[${str}]`);
console.log(arr); // [2, 3, 7]