功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789
<script type="text/javascript">
window.onload = function(){
var sequ = window.prompt('输入一个字符串','');
document.write(maxNumberSequence(sequ)==undefined ?
"没有数字串":maxNumberSequence(sequ));
}
function maxNumberSequence(sequ){
var start = -1;
var end = -1;
var tempStart = -1;
var tempEnd = -1;
for(var i=0;i<sequ.length;i++){
var value = +sequ.charAt(i);
if(!isNaN(value)){//遇到数字
if(tempStart==-1){//遇到的是子序列第一个数字
tempStart = i;
tempEnd = i;
}else{
tempEnd = i;
}
}else if(isNaN(value)){//遇到的不是数字
if(tempStart==-1)//前面是非数字序列
continue;
if(end-start<tempEnd-tempStart){//前面是数字序列
start = tempStart;
end = tempEnd;
}
tempStart = -1;
}
}
if(tempStart!=-1&&end-start<tempEnd-tempStart){//最后一个序列遇到的是数字序列
start = tempStart;
end = tempEnd;
}
if(start!=-1){
//alert(sequ.substring(start,end+1));
return sequ.substring(start,end+1);
}
}
</script>