-
-
Notifications
You must be signed in to change notification settings - Fork 237
/
Copy pathstring.ts
79 lines (63 loc) · 1.93 KB
/
string.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/**
* String related filters
*
* * prefer stringify() to String() since `undefined`, `null` should eval ''
*/
import { stringify } from '../../util/underscore'
import { assert } from '../../util/assert'
export function append (v: string, arg: string) {
assert(arg !== undefined, () => 'append expect 2 arguments')
return stringify(v) + stringify(arg)
}
export function prepend (v: string, arg: string) {
assert(arg !== undefined, () => 'prepend expect 2 arguments')
return stringify(arg) + stringify(v)
}
export function lstrip (v: string) {
return stringify(v).replace(/^\s+/, '')
}
export function downcase (v: string) {
return stringify(v).toLowerCase()
}
export function upcase (str: string) {
return stringify(str).toUpperCase()
}
export function remove (v: string, arg: string) {
return stringify(v).split(arg).join('')
}
export function removeFirst (v: string, l: string) {
return stringify(v).replace(l, '')
}
export function rstrip (str: string) {
return stringify(str).replace(/\s+$/, '')
}
export function split (v: string, arg: string) {
return stringify(v).split(arg)
}
export function strip (v: string) {
return stringify(v).trim()
}
export function stripNewlines (v: string) {
return stringify(v).replace(/\n/g, '')
}
export function capitalize (str: string) {
str = stringify(str)
return str.charAt(0).toUpperCase() + str.slice(1)
}
export function replace (v: string, pattern: string, replacement: string) {
return stringify(v).split(pattern).join(replacement)
}
export function replaceFirst (v: string, arg1: string, arg2: string) {
return stringify(v).replace(arg1, arg2)
}
export function truncate (v: string, l = 50, o = '...') {
v = stringify(v)
if (v.length <= l) return v
return v.substr(0, l - o.length) + o
}
export function truncatewords (v: string, l = 15, o = '...') {
const arr = v.split(/\s+/)
let ret = arr.slice(0, l).join(' ')
if (arr.length >= l) ret += o
return ret
}