1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
var indexOf = function(s, substring) { |
18 |
var index = s.indexOf(substring); |
19 |
if (index >= 0) { |
20 |
return index; |
21 |
} else { |
22 |
throw '"' + s + '" does not contain "' + substring + '"'; |
23 |
} |
24 |
}; |
25 |
|
26 |
var lastIndexOf = function(s, substring) { |
27 |
var index = s.lastIndexOf(substring); |
28 |
if (index >= 0) { |
29 |
return index; |
30 |
} else { |
31 |
throw 'string "' + s + '" does not contain "' + substring + '"'; |
32 |
} |
33 |
}; |
34 |
|
35 |
var startsWith = function(s, pattern) { |
36 |
return s.indexOf(pattern) == 0; |
37 |
}; |
38 |
|
39 |
var endsWith = function(s, pattern) { |
40 |
return s.lastIndexOf(pattern) == s.length - pattern.length; |
41 |
}; |
42 |
|
43 |
var containsSubstring = function(s, substring) { |
44 |
return s.indexOf(substring) >= 0; |
45 |
}; |
46 |
|
47 |
var blank = function(s) { |
48 |
return /^\s*$/.test(s); |
49 |
}; |
50 |
|
51 |
var split = function(s, separator) { |
52 |
return s.length == 0 ? [] : s.split(separator); |
53 |
}; |
54 |
|
55 |
var replace = function(s, regex, replace) { |
56 |
return s.replace(regex, replace); |
57 |
}; |
58 |
|
59 |
var toLowerCase = function(s) { |
60 |
return s.toLowerCase(); |
61 |
}; |
62 |
|
63 |
var toUpperCase = function(s) { |
64 |
return s.toUpperCase(); |
65 |
}; |
66 |
|
67 |
var substring = function(s, from, to) { |
68 |
return s.substring(from, to); |
69 |
}; |
70 |
|
71 |
var trim = function(s) { |
72 |
s = s.replace(/^\s+/, ''); |
73 |
for (var i = s.length - 1; i >= 0; i--) { |
74 |
if (/\S/.test(s.charAt(i))) { |
75 |
s = s.substring(0, i + 1); |
76 |
break; |
77 |
} |
78 |
} |
79 |
|
80 |
return s; |
81 |
}; |
82 |
|
83 |
var asNumber = Number; |
84 |
|
85 |
var asBoolean = function(s) { |
86 |
return 'true' == s || 'any' == s; |
87 |
}; |
88 |
|
89 |
var asRegexp = function(s) { |
90 |
return new RegExp(s); |
91 |
}; |
92 |
|
93 |
|
94 |
|