【问题标题】:How do I split this string with JavaScript?如何用 JavaScript 分割这个字符串?
【发布时间】:2011-05-20 21:38:12
【问题描述】:

Javascript:

var string = '(37.961523, -79.40918)';

//remove brackets: replace or regex? + remove whitespaces

array = string.split(',');

var split_1 = array[0];

var split_2 = array[1];

输出:

var split_1 = '37.961523';

var split_2 = '-79.40918';

我应该只使用string.replace('(', '').replace(')', '').replace(/\s/g, ''); 还是RegEx?

【问题讨论】:

  • 如果这种格式不会改变,那么正则表达式绝对是一种矫枉过正。
  • 问题是什么?你有什么作品

标签: javascript regex string


【解决方案1】:

使用

string.slice(1, -1).split(", ");

【讨论】:

  • 谢谢!绝对看起来更干净:D
【解决方案2】:

您可以使用正则表达式同时提取两个数字。

var string = '(37.961523, -79.40918)';
var matches = string.match(/-?\d*\.\d*/g);

【讨论】:

    【解决方案3】:

    您可能希望在这样的情况下使用正则表达式:

    str.match(/-?\d+(\.\d+)?/g); // [ '37.961523', '-79.40918' ]

    编辑已修复以解决以下评论中指出的问题

    【讨论】:

    • 对于小于 10 且大于 -10 的任何整数,您的正则表达式都会失败。
    【解决方案4】:

    这是另一种方法:

    如果()[],您将拥有有效的 JSON。因此,您可以做的是将生成坐标的代码更改为生成[] 而不是(),或者将它们替换为:

    str = str.replace('(', '[').replace(')', ']')
    

    然后您可以使用JSON.parse(也可用作external library)创建一个包含这些坐标的数组,这些坐标已经被解析为数字:

    var coordinates = JSON.parse(str);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2021-09-25
      • 2014-12-13
      相关资源
      最近更新 更多