【问题标题】:JavaScript - best way to split up a string? [duplicate]JavaScript - 拆分字符串的最佳方法? [复制]
【发布时间】:2017-12-20 02:27:37
【问题描述】:

我有一个变量,其中包含一个带有数值的字符串,例如“3、6、12”。这些数字中的每一个都对应于我需要分配给对象并在以后的过程中传递的另一个值。对我来说,拆分这个字符串以评估这个字符串中的数字的最佳方法是什么?我希望能够评估这个字符串并意识到这个字符串中有3个值(分别是3、6、12,需要确保“12”不被评估为“1”和“2”) .此外,我怎么能忽略这个变量里面的逗号和空格呢?对我来说,提取这些数值并忽略过程中的空格和逗号的最佳方法是什么?

【问题讨论】:

  • "3, 6, 12".split(',').map((i) => {return i.trim();})

标签: javascript string split slice


【解决方案1】:

试试这个:

"3, 6, 12".split(", ")

如果您的值可以包含或不包含空格,则可以使用以下方法始终只获取数字:

"3, 6, 12".split(",").map(Number)

【讨论】:

  • 那么您是从哪里得到添加.map(Number) 的想法的? ;-)
  • "如果你可以有没有空格的值,..." Number 可以处理空格,你不需要在转换之前trim()。但是,如果您对此感到担忧,那么map(parseFloat) 也可以处理在数字之后包含其他字符的字符串。
  • @trincot 我之前考虑过添加它,但不确定它如何处理空格。测试后更新了我的答案。
  • @Thomas 在我的回答中从未使用过 trim() :s 只是说很清楚,在转换为数字时空格不是问题,因为只有 split(",") 会返回值如果有的话,空格仍然存在。如果保证给定的字符串遵循模式思想,这将永远不会成为问题。
【解决方案2】:

您可以使用正则表达式,然后应用 Number 来获取数字类型的数组元素:

var arr = str.match(/[\d.]+/g).map(Number)

这将忽略空格、逗号和任何其他非数字字符(小数点除外,这将被考虑在内)。

【讨论】:

    猜你喜欢
    • 2018-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2011-10-18
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多