我有其代表在以下格式經度/緯度的字符串:如何通過一個空間在JavaScript
DD°mm'ss''W(注SS後2個單引號) 。
,我使用下面的代碼轉換字符串中的小數表示:
function dmsTodegrees(val) {
var s = val.replace('°', ' ');
s = s.replace("'", ' ');
s = s.replace("''", ' ');
var tokens = s.split(' ');
var result = Number.parseFloat(tokens[0]) + Number.parseFloat(tokens[1])/60 + Number.parseFloat(tokens[2])/3600;
if (tokens[3] === 'W' || tokens[3] === 'S') result = -result;
return result;
}
然而,似乎s = s.replace("''", ' ');
沒有做什麼打算,並在2個單引號(')是不能被空間所替代。不知道我在這裏做錯了什麼。
請注意,我已經省略了這裏的所有錯誤處理。
感謝您的解決方案。您能否快速解釋正則表達式的作用,並且我會接受您的回答 – BigONotation
我認爲正則表達式足夠簡單。無論如何,'|'表示OR,''{1,2}'表示一次或兩次出現'''。 – ntalbs