我有数千行 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;
};
速度或性能不是问题,我只需要:
- 复制第一个
JS
代码到textarea - 按下按钮时格式化
- 用格式化代码替换textarea值
- 复制
- 粘贴到我的代码中
问题:
如何替换字符串中包含各种字母、特殊字符等的部分内容?
(可能是错误原因,对吧?)
最佳答案
我相信这就是您要找的。p>
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/