Mercurial > urweb
comparison lib/ur/string.ur @ 2021:2da693675de9
String.trim; add OnChange to more tags
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Tue, 10 Jun 2014 10:58:22 -0400 |
parents | 65fbb250b875 |
children | 1a4b2b983889 |
comparison
equal
deleted
inserted
replaced
2020:924e2ef31f5a | 2021:2da693675de9 |
---|---|
84 None => cdata s | 84 None => cdata s |
85 | Some (s1, s2) => <xml>{[s1]}<br/>{newlines s2}</xml> | 85 | Some (s1, s2) => <xml>{[s1]}<br/>{newlines s2}</xml> |
86 | 86 |
87 fun isPrefix {Full = f, Prefix = p} = | 87 fun isPrefix {Full = f, Prefix = p} = |
88 length f >= length p && substring f {Start = 0, Len = length p} = p | 88 length f >= length p && substring f {Start = 0, Len = length p} = p |
89 | |
90 fun trim s = | |
91 let | |
92 val len = length s | |
93 | |
94 fun findStart i = | |
95 if i < len && Char.isSpace (sub s i) then | |
96 findStart (i+1) | |
97 else | |
98 i | |
99 | |
100 fun findFinish i = | |
101 if i >= 0 && Char.isSpace (sub s i) then | |
102 findFinish (i-1) | |
103 else | |
104 i | |
105 | |
106 val start = findStart 0 | |
107 val finish = findFinish (len - 1) | |
108 in | |
109 if finish >= start then | |
110 substring s {Start = start, Len = finish - start + 1} | |
111 else | |
112 "" | |
113 end |