【问题标题】:How to remove single quote from comma seprated integer values [duplicate]如何从逗号分隔的整数值中删除单引号 [重复]
【发布时间】:2019-07-18 06:57:53
【问题描述】:

我从数据库中得到'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));
});

有没有直接的方法可以做到这一点。

提前致谢。

【问题讨论】:

  • 输出应该是数组?还是没有单引号的字符串?
  • 是数组......

标签: javascript casting


【解决方案1】:

使用 正则表达式 match()

演示https://regex101.com/r/JhTkVB/1

var string1 = "'2,3,7'"
var string2 = "2,3,7"

console.log(string1.match(/\d+/g).map(Number));
console.log(string2.match(/\d+/g).map(Number));

【讨论】:

  • @geisterfurz007 现在您可以看到它适用于两种情况
  • 哦,对不起,错过了!我刚刚浏览了寻找“'模式的答案。感谢您清除它!
【解决方案2】:

做你想做的最简单的方法是:

let str = '2, 3, 7';
let yourArray = str.split(',').map(Number);
console.log(yourArray);

这由逗号分割,然后使用 map 函数,该函数使用作为参数给出的函数转换数组中的每个值并将它们存储在新数组中。所以在这种情况下,函数Number 被调用三次,参数为'2''3''7'Number 是数字对象的构造函数,它也将字符串解析为数字。然后将生成的数组存储在yourArray 中,然后其值为[2, 3, 7]

【讨论】:

    【解决方案3】:

    您可以删除第一个和最后一个字符。

    var string = "'2,3,7'",
        values = string.slice(1, -1);
    
    console.log(values);

    【讨论】:

    • OP编辑后,此答案已失效,因为它试图解决不同的问题。
    【解决方案4】:

    这是另一种删除封闭单引号的方法-

    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);

    【讨论】:

    • 如果您想从字符串中删除某个字符,请定位该字符,而不是假设它会在那里。
    • @Cerbrus 嘿 - 看看这个问题。在这种情况下,并非绝对有必要以角色为目标。删除第一个和最后一个就足够了 - 任何扫描字符串的东西都是多余的。
    • 是的,在下一个项目中,任何阅读本文的人都想从字符串中删除一些字符,他们将再次使用此方法,即使他们的输入可能无法预测。矫枉过正? replace 代码并不完全是性能消耗者,而且代码可以说更具可读性。
    • 在从简单字符串中删除字符的过程中考虑下一个项目称为“过早优化”。这是所有编程弊端中最糟糕的。 replace 对于这种情况来说太多了。当你想切掉胡萝卜的顶部和底部时,不要测量胡萝卜的长度;)
    • 如果要从字符串中删除特定字符,replace 是否太多?这就是该功能的用途!
    【解决方案5】:

    根据您的更新,您的输入字符串似乎只是'2,3,7'。要将其转换为数字数组,您可以使用JSON.parse(),将您的字符串封装在方括号中,如下所示:

    const str = '2,3,7';
    const arr = JSON.parse(`[${str}]`);
    console.log(arr); // [2, 3, 7] 

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 2023-02-07
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多