https://jsbin.com/tolodar/edi...
上面这个我特别喜欢,但是一个经纬度要分两次才可以转完,很不方便。
能不能一次转完整。
经纬度用英文逗号隔开。
请老师们帮忙,谢谢。
另外,能不能在input判断输入是否错误:
第一个文本框只能是数字、减号、英文句点和英文逗号。
第二个文本框只能是数字英文句点英文逗号和度分秒的符号。
代码在下面:
<input type="text" id="input_source" placeholder="113.2115235,28.366555"/>
<div style="padding: 0 4px;">
<button id="btn_exec">=></button>
<br>
<button id="btn_reexec"><=</button>
</div>
<input type="text" id="input_target" placeholder="113°12'39.6”,58°8'336.98"" />
js:
function exec (str, fixed = 1) {
var num = Number(str)
if (!num) {
return ''
} else {
var a = Math.floor(num)
var b = Math.floor((num - a) * 60)
var c = ((num - a - b / 60) * 3600).toFixed(fixed)
return a + '°' + b + "'" + c + '"'
}
}
function reexec (str = '', fixed = 3) {
var mat = str.match(/^(\d+)°(\d+')?([0-9\.]+")?$/)
if (!mat) {
return ''
} else {
return parseInt(mat[1], 10)
+ parseInt(mat[2], 10) / 60
+ parseFloat(mat[3]) / 3600
}
}
btn_exec.addEventListener('click', function () {
input_target.value = exec(input_source.value)
})
btn_reexec.addEventListener('click', function () {
input_source.value = reexec(input_target.value)
})