root/trunk/as2/com/jeroenwijering/utils/StringMagic.as @ 1

Revision 1, 2.1 kB (checked in by jeroen, 18 months ago)

initial commit of old repository into public one

  • Property svn:executable set to *
Line 
1/**
2* A couple of commonly used string operations.
3*
4* @author       Jeroen Wijering
5* @version      1.3
6**/
7
8
9class com.jeroenwijering.utils.StringMagic {
10
11
12        /** Strip tags and breaks from a string. **/
13        static function stripTagsBreaks(str:String):String {
14                if(str.length == 0 || str == undefined) { return ""; }
15                var tmp:Array = str.split("\n");
16                str = tmp.join("");
17                tmp = str.split("\r");
18                str = tmp.join("");
19                var i:Number = str.indexOf("<");
20                while(i != -1) {
21                        var j = str.indexOf(">",i+1);
22                        j == -1 ? j = str.length-1: null;
23                        str = str.substr(0,i) + str.substr(j+1,str.length);
24                        i = str.indexOf("<",i);
25                }
26                return str;
27        };
28
29
30        /**
31        * Chop string into a number of lines.
32        *
33        * @param str    The string to chop.
34        * @param cap    The maximum number of characters per line.
35        * @param nbr    The maximum number of lines.
36        **/
37        static function chopString(str:String,cap:Number,nbr:Number):String {
38                for(var i=cap; i<str.length; i+=cap) {
39                        if(i == cap*nbr) {
40                                if(str.indexOf(" ",i-5) == -1) {
41                                        return str;
42                                } else {
43                                        return str.substr(0,str.indexOf(" ",i-5));
44                                }
45                        } else  if(str.indexOf(" ",i) > 0) {
46                                str = str.substr(0,str.indexOf(" ",i-3)) + "\n" +
47                                        str.substr(str.indexOf(" ",i-3)+1);
48                        }
49                }
50                return str;
51        };
52
53
54        /** Add a leading zero and convert number to string. **/
55        static function addLeading(nbr:Number):String {
56                if(nbr < 10) {
57                        return "0"+Math.floor(nbr);
58                } else {
59                        return Math.floor(nbr).toString();
60                }
61        };
62
63
64        /**
65        * Convert a string to seconds, with these formats supported:
66        * 00:03:00.1 / 03:00.1 / 180.1s / 3.2m / 3.2h
67        **/
68        static function toSeconds(str:String):Number {
69                var arr = str.split(':');
70                var sec;
71                if (str.substr(-1) == 's') {
72                        sec = Number(str.substr(0,str.length-2));
73                } else if (str.substr(-1) == 'm') {
74                        sec = Number(str.substr(0,str.length-2))*60;
75                } else if(str.substr(-1) == 'h') {
76                        sec = Number(str.substr(0,str.length-2))*3600;
77                } else if(arr.length > 1) {
78                        sec = Number(arr[arr.length-1]);
79                        sec += Number(arr[arr.length-2])*60;
80                        sec += Number(arr[arr.length-3])*3600;
81                } else {
82                        sec = Number(str);
83                }
84                if(isNaN(sec)) {
85                        return 0;
86                } else {
87                        return sec;
88                }
89        };
90
91
92}
Note: See TracBrowser for help on using the browser.