21 lines
665 B
CoffeeScript
21 lines
665 B
CoffeeScript
matchAt = (s, frag, i) ->
|
|
s[i...i+frag.length] == frag
|
|
|
|
startsWith = (s, frag) ->
|
|
matchAt s, frag, 0
|
|
|
|
endsWith = (s, frag) ->
|
|
matchAt s, frag, s.length - frag.length
|
|
|
|
matchLocations = (s, frag) ->
|
|
(i for i in [0..s.length - frag.length] when matchAt s, frag, i)
|
|
|
|
console.log startsWith "tacoloco", "taco" # true
|
|
console.log startsWith "taco", "tacoloco" # false
|
|
console.log startsWith "tacoloco", "talk" # false
|
|
console.log endsWith "tacoloco", "loco" # true
|
|
console.log endsWith "loco", "tacoloco" # false
|
|
console.log endsWith "tacoloco", "yoco" # false
|
|
console.log matchLocations "bababab", "bab" # [0,2,4]
|
|
console.log matchLocations "xxx", "x" # [0,1,2]
|