日期:2014-05-18  浏览次数:20458 次

求一段好用的限制标题长度的
最好是VB版..
我找个限制长度过程都有问题..我是GB2312..
英文中文都算一个..郁闷!大家给我一段过程吧!

------解决方案--------------------
我找个限制长度过程都有问题..?
验证输入字符长度不能超过指定的么?
可以用maxlength或者js的value.length来判断
------解决方案--------------------
#region 截取字符
static public string Left(string str, int L)
{
string tmpStr;
tmpStr = str;
if (str.Length > L)
{

tmpStr = str.Substring(0, L) + "... ";
}
return tmpStr;
}

#endregion

前台引用:
<%#Left(Eval( "标题 ").ToString(),10)%>
------解决方案--------------------
可用javascript,用html的textares,添加ontextchange事件判断
if(textbox.value.length> 长度)
{
label.innerText= '您还剩 '+5000-textbox.value.length+ '长度可编写! ';
}
注:ms的标准控件只有在失去焦点的时候才执行次事件
------解决方案--------------------
解决了汉字与英文字节不一样导致直接截取到的长度不一样的问题
#region 字符串截取函数
public static string CutString(string inputString,int len)
{

ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen=0;
string tempString= " ";
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i <s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}

try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}

if(tempLen> len)
break;
}
//如果截过则加上半个省略号
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length> len)
tempString+= "… ";

return tempString;
}
#endregion


------解决方案--------------------
你到底是要按字符数算还是字节数算哦?