在ASP里面做过这种截取函数,今天在Flash也要用到。
就把ASP的代码拿到Flash改编一下。
代码如下:
============================================================
function getStrValue(Str1:String, Len:Number, Str2:String):String{
var n:Number= 0;
var k:Number= 0;
for (var i:Number= 0; n<Len; i++) {
if (Str1.charCodeAt(i)<0 || Str1.charCodeAt(i)>255) {
n += 2;
if (n>Len) {
k--;
}
} else {
n++;
}
k++;
}
var Str3 = Str1.substring(0, k);
if (Str3 == Str1) {
return Str1;
} else {
return Str3+Str2;
}
}
============================================================
使用方法:public getStrValue(String1:String,Length:Number,String2:String) : String
String1,要处理的字符串;
Length,要保留字符串的长度(一个中文算两个字符长度);
String2,保留字符串后面显示的字符;
返回:字符串
实例:
============================================================
var myString:String= "Lorsxin 乱世狂闪 juyazhai.com";
var newString:String;
newString = getStrValue(myString, 0, "...");
trace(newString);//...
newString = getStrValue(myString, 1, "...");
trace(newString);//L...
newString = getStrValue(myString, 7, "...");
trace(newString);//Lorsxin...
newString = getStrValue(myString, 9, "...");
trace(newString);//Lorsxin ...
newString = getStrValue(myString, 10, "...");
trace(newString);//Lorsxin 乱...
newString = getStrValue(myString, 14, "...");
trace(newString);//Lorsxin 乱世狂...
newString = getStrValue(myString, 16, "...");
trace(newString);//Lorsxin 乱世狂闪...
newString = getStrValue(myString, 19, "...");
trace(newString);//Lorsxin 乱世狂闪 ju...
newString = getStrValue(myString, 29, "...");
trace(newString);//Lorsxin 乱世狂闪 juyazhai.com
newString = getStrValue(myString, 30, "...");
trace(newString);//Lorsxin 乱世狂闪 juyazhai.com
============================================================ |