자바 스크립트에서 문자열에서 가장 긴 숫자를 찾아 부동 소수점 값으로 변환하는 함수를 만들려고합니다. 그러나 ff333sds22442
같은 것을 입력하면 22442
을 출력 할 때 가장 긴 숫자로 "333"을 출력합니다.Javascript, 문자열에서 가장 큰 숫자 시퀀스 찾기
<input type="text" id="numberInput"></input>
<button onclick="findNumber()"> Find Number </button>
<button onclick="makeSubstring()"> Make Substring </button>
<p id="number"></p>
<script>
function findNumber() {
var input = document.getElementById("numberInput").value;
var longest = "";
var result = "";
var inputSub = "";
for (var i = 0; i < input.length; i++) {
for (var j = i + 1; j < input.length; j++) {
inputSub = input.substring(i, j + 1);
if (!isNaN(parseFloat(inputSub)) && inputSub.length > longest.length){
longest = inputSub;
result = inputSub;
}
}
}
result = parseFloat(result);
document.getElementById("number").innerHTML = result;
}
나는 왜 이런 일을하는지 모르겠다. 나는 누군가가 나에게 설명 할 수 있기를 바랬다.
:
는
parseFloat
의 documentation는 함수의 버그를 수정하는 데 사용할 수있는 엄격한 구문 분석 기능을 포함 * 파싱 된 * float의 길이가 아닌 부분 문자열의 길이를 비교하고 있습니다. 따라서 결과는 항상 원래 문자열이됩니다 (가장 길기 때문에). 그리고 그것에 대한'parseFloat'는 발견 한 첫 번째 숫자를 줄 것입니다 (즉'333') –이것을 사용하여 정렬하는 더 효율적인 방법이 있습니까? –