60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
-- @docclass string
 | 
						|
 | 
						|
function string:split(delim)
 | 
						|
  local start = 1
 | 
						|
  local results = {}
 | 
						|
  while true do
 | 
						|
    local pos = string.find(self, delim, start, true)
 | 
						|
    if not pos then
 | 
						|
      break
 | 
						|
    end
 | 
						|
    table.insert(results, string.sub(self, start, pos-1))
 | 
						|
    start = pos + string.len(delim)
 | 
						|
  end
 | 
						|
  table.insert(results, string.sub(self, start))
 | 
						|
  table.removevalue(results, '')
 | 
						|
  return results
 | 
						|
end
 | 
						|
 | 
						|
function string:starts(start)
 | 
						|
  return string.sub(self, 1, #start) == start
 | 
						|
end
 | 
						|
 | 
						|
function string:ends(test)
 | 
						|
   return test =='' or string.sub(self,-string.len(test)) == test
 | 
						|
end
 | 
						|
 | 
						|
function string:trim()
 | 
						|
  return string.match(self, '^%s*(.*%S)') or ''
 | 
						|
end
 | 
						|
 | 
						|
function string:explode(sep, limit)
 | 
						|
  if type(sep) ~= 'string' or tostring(self):len() == 0 or sep:len() == 0 then
 | 
						|
    return {}
 | 
						|
  end
 | 
						|
 | 
						|
  local i, pos, tmp, t = 0, 1, "", {}
 | 
						|
  for s, e in function() return string.find(self, sep, pos) end do
 | 
						|
    tmp = self:sub(pos, s - 1):trim()
 | 
						|
    table.insert(t, tmp)
 | 
						|
    pos = e + 1
 | 
						|
 | 
						|
    i = i + 1
 | 
						|
    if limit ~= nil and i == limit then
 | 
						|
      break
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  tmp = self:sub(pos):trim()
 | 
						|
  table.insert(t, tmp)
 | 
						|
  return t
 | 
						|
end
 | 
						|
 | 
						|
function string:contains(str, checkCase, start, plain)
 | 
						|
  if(not checkCase) then
 | 
						|
    self = self:lower()
 | 
						|
    str = str:lower()
 | 
						|
  end
 | 
						|
  return string.find(self, str, start and start or 1, plain == nil and true or false)
 | 
						|
end
 |