首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

求返回汉字和字母混合字符串中最大字符组合的函数解决思路

2012-02-07 
求返回汉字和字母混合字符串中最大字符组合的函数例如有这样一个字符串:MaxChars( 中abc华bc人a民共abcde

求返回汉字和字母混合字符串中最大字符组合的函数
例如有这样一个字符串:
MaxChars( "中abc华bc人a民共abcde和国 ")= "abcde "

自己写了几个函数,但都不理想。求其他算法。

[解决办法]
<script>

function MaxChars(str)
{
str=str.replace(/[^a-z]/g, ", ");
a=str.split( ", ");
var result=new Array();
for(var i=0;i <a.length;i++)
{
result[i]=a[i].length;
}
var r=result.sort(function(a,b)
{if(a> b)
{
return -1;
}
else
{
return 1;
}
});

for(var i=0;i <a.length;i++)
{
if(a[i].length==r[0])
{
document.write(a[i]);
}
}

}
MaxChars( "中abcsss华bc人a民hhhhhhhhhhhhhhhhhhhhh共abcde和国ffffffffff ");
</script>
[解决办法]
如果是要提最大E文字串的话
function GetMaxEnglish(strIn)
Dim i,strT,strP
For i=1 To Len(strIn)
If Asc(Mid(strIn,i,1)) <0 Then
If Len(strT)> Len(strP) Then strP=strT
strT= " "
Else
strT=strT & Mid(strIn,i,1)
End If
Next

If Len(strT)> Len(strP) Then strP=strT
GetMaxEnglish=strP
End function
[解决办法]
还可以用正则
function GetMaxEnglish(strIn)
Dim oMatches,oRe,i,j
Set oRe=new Regexp
oRe.Global=True
oRe.IgnoreCase=True
oRe.Pattern= "[a-z]* "
Set oMatches=oRe.Execute(strIn)
For i=0 To oMatches.Count-1
If Len(oMatches(i).value) > Len(oMatches(j).value) Then j=i
If i=oMatches.Count-1 Then GetMaxEnglish=oMatches(j).value
Next
End function
[解决办法]
不能输入全角字符不就好了嘛

热点排行