【发布时间】:2016-04-22 23:35:35
【问题描述】:
我有数千行 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 值
- 复制它
- 将其粘贴到我的代码中
问题:
如何替换字符串中包含各种字母、特殊字符等的部分?
(可能是错误原因,对吧?)
【问题讨论】:
-
正则表达式具有特定的语法,将带有特殊含义的字符的字符串发送到 RegExp 构造函数将导致错误。您应该只使用字符串本身(例如
resultB.replace(findC, '],');)
标签: javascript php arrays