[原创]截取字符串的一定长度
1<script>
2String.prototype.truncate = function(bytes) {
3
4 str = this;
5 showstr = "";
6
7 flag = false;
8
9 strleg = string_get_ascii_leg(str);
10
11 if (strleg > bytes)
12 {
13 for (i=0,j=0;i<bytes;i++,j++)
14 {
15 showstr = showstr.concat(str.charAt(j));
16 if (!(str.charCodeAt(i) < 255))//是否是英文字符
17 {
18 i++;
19 }
20 }
21 showstr = showstr.concat("");
22 }
23 else
24 {
25 showstr = str;
26 }
27 return showstr;
28}
29function string_get_ascii_leg(indata)
30{
31 var i,strleg;
32
33 strleg = 0;
34 for (i=0;i<indata.length;i++)
35 {
36 strleg++;
37 if (indata.charCodeAt(i) > 255)
38 {
39 strleg++;
40 }
41 }
42
43 return strleg;
44}
45</script>
Example:
1<script>
2var test = "我们在哪里";
3alert(test.truncate(6));
4</script>
1<script>
2String.prototype.truncate = function(bytes) {
3
4 str = this;
5 showstr = "";
6
7 flag = false;
8
9 strleg = string_get_ascii_leg(str);
10
11 if (strleg > bytes)
12 {
13 for (i=0,j=0;i<bytes;i++,j++)
14 {
15 showstr = showstr.concat(str.charAt(j));
16 if (!(str.charCodeAt(i) < 255))//是否是英文字符
17 {
18 i++;
19 }
20 }
21 showstr = showstr.concat("");
22 }
23 else
24 {
25 showstr = str;
26 }
27 return showstr;
28}
29function string_get_ascii_leg(indata)
30{
31 var i,strleg;
32
33 strleg = 0;
34 for (i=0;i<indata.length;i++)
35 {
36 strleg++;
37 if (indata.charCodeAt(i) > 255)
38 {
39 strleg++;
40 }
41 }
42
43 return strleg;
44}
45</script>
Example:
1<script>
2var test = "我们在哪里";
3alert(test.truncate(6));
4</script>