我有這樣的:SUBSTR和爆炸在JavaScript
var result = "(55.6105023, 12.357556299999942)";
我想去掉括號,我認爲你可以用SUBSTR做到這一點(刪除字符串中的第一個和最後一個字符)< - 但如果我知道長度,我只能設法刪除最後一個字符。
然後我想通過使用爆炸()<把第一個數字55.6105023
爲可變lat
和第二12.357556299999942
可變lng
- 但是這並不存在於JS
我怎麼能這樣做呢?
我有這樣的:SUBSTR和爆炸在JavaScript
var result = "(55.6105023, 12.357556299999942)";
我想去掉括號,我認爲你可以用SUBSTR做到這一點(刪除字符串中的第一個和最後一個字符)< - 但如果我知道長度,我只能設法刪除最後一個字符。
然後我想通過使用爆炸()<把第一個數字55.6105023
爲可變lat
和第二12.357556299999942
可變lng
- 但是這並不存在於JS
我怎麼能這樣做呢?
使用substr,replace或slice刪除第一個和最後一個字符。使用split將字符串拆分爲逗號中的數組。像這樣:
var chunks = result.slice(1, -1).split(", ");
var lat = chunks[0].trim();
var lng = chunks[1].trim();
我已經添加了修剪,以確保所有的空格都消失了。
'修剪()'是ECMAScript的5和沒有得到普遍支持(這是不支持的IE <9例如)。見https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim –
@TimDown:你說得對。感謝您指出了這一點。我討厭那種東西......修剪是一個常見的功能:s –
您可以使用正則表達式來拉出號:
"(55.6105023, 12.357556299999942)".match(/[\d\.-]+/g);
// returns ["55.6105023", "12.357556299999942"]
正則表達式匹配數字,小數點和減號。
var result = "(55.6105023, 12.357556299999942)";
var substring = result.substring(1, result.length - 1);
var coordinates = substring.split(",");
var lat = coordinates[0];
var lng = coordinates[1];
您可以通過使用substring
和indexOf
做到這一點:
var result = "(55.6105023, 12.357556299999942)";
var lat = result.substring(result.indexOf('(')+1, result.indexOf(','));
var lon = result.substring(result.indexOf(', ')+1, result.indexOf(')'));
alert(lat); // alerts 55.6105023
alert(lon); // alerts 12.357556299999942
這裏另一種方式,所述第一數據到適當的JSON,然後轉換成JavaScript數組:
str = str.replace('(', '[').replace(')', ']');
var data = JSON.parse(str),
lat = data[0],
lng = data[1];
切片不會工作,未定義的功能片。 – Karem
@Karem:我從大綠色標記中得知你已經意識到slice()能夠工作嗎? –