javascript - 重构数组

标签 javascript php arrays

我有数千行 Javascript 代码,如下所示:

var myCoordinates = [

    new google.maps.LatLng(11.11111,22.222222),
    new google.maps.LatLng(33.33333,44.444444),
    new google.maps.LatLng(55.55555,66.666666),

    //thousands of lines
];

我需要将上面的代码格式化为没有空格的格式(也就是我可以复制到我的 PHP 代码中的字符串):


[["lat"=>11.11111,"lng"=>22.22222],["lat"=>33.33333,"lng"=>44.44444],["lat"=>55.55555,"lng"=>66.66666],/*etc*/];

我尝试过但失败了的:

document.getElementById('format-submit').onclick = function() {

    var textareaValue = document.getElementById('format-textarea').value;

    var findA = 'var myCoordinates = ';
    var rA = new RegExp( findA, 'g' );
    var resultA = textareaValue.replace( rA, '' );

    //I get this error on this line:

    //Uncaught SyntaxError: Invalid regular expression: /new google.maps.LatLng(/: Unterminated group

    //              |
    //              V

    var findB = 'new google.maps.LatLng(';
    var rB = new RegExp(findB, 'g');
    var resultB = resultA.replace(rB, '["lat" => ');

    var findC = '),';
    var rC = new RegExp(findC, 'g');
    var resultC  = resultB.replace(rC, '],');

    var findD = ')';
    var rD = new RegExp(findD, 'g');
    var finalResult  = resultC.replace(rD, ']');

    textareaValue = finalResult;
};

速度或性能不是问题,我只需要:

  1. 复制第一个JS代码到textarea
  2. 按下按钮时格式化
  3. 用格式化代码替换textarea值
  4. 复制
  5. 粘贴到我的代码中

问题:

如何替换字符串中包含各种字母、特殊字符等的部分内容?

(可能是错误原因,对吧?)

最佳答案

我相信这就是您要找的。

document.getElementById('format-submit').onclick = function() {
    var textarea = document.getElementById('format-textarea');

    textarea.value = textarea.value
        .replace(/^[^\[]+/,'')
        .replace(/^.*\(([\d.]+),([\d.]+)\)(,)?$/gm,'["lat" => $1, "lng" => $2]$3')
        .replace(/\s+/g,'');
};
<textarea id="format-textarea" rows="7" cols="46">var myCoordinates = [

    new google.maps.LatLng(11.11111,22.222222),
    new google.maps.LatLng(33.33333,44.444444),
    new google.maps.LatLng(55.55555,66.666666)

];</textarea><br>
<input type="button" id="format-submit" value="Format textarea">

关于javascript - 重构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843868/

相关文章:

javascript - 使用 sessionstorage 保存暗模式

javascript - Owl Carousel 在点击链接后停止旋转

php - 用于使用函数 header 中声明的所有参数的 NetBeans 代码模板

php - 如何使用 jquery-ui-map 在谷歌地图上添加标记

c++ - 为什么大型本地数组会使我的程序崩溃,而全局数组却不会?

javascript - 单击时带有图像和加载元素 ID 的按钮

javascript - 如何使用javascript卡住表头

php - Composer - 请求的包存在,但这些被你的约束拒绝

javascript - 数组元素和对象属性比较返回 false

javascript - 如何按顺序添加数组元素?