在Javascript中,我試圖創建一個函數,它將查找字符串中最長的數字並將其轉換爲浮點值。但是,當我輸入ff333sds22442
之類的東西時,它應該輸出「333」作爲最長的數字,它應該輸出22442
。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;
}
我不確定它爲什麼這樣做,我希望有人能解釋給我。
除了是不是很有效,有開始,當你比較'inputSub.length'你正在比較子字符串的長度,而不是* parsed * float的長度。所以結果總是最終成爲原始字符串(因爲它是最長的)。並且'parseFloat'就會給你找到的第一個數字(即'333') – 2014-11-07 02:21:58
有沒有更有效的方法來排序這個我應該用? – 2014-11-07 02:29:11