CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✓ | 
| LangLanguage | SwiftSwift | 
| License | MIT | 
| ReleasedLast Release | Dec 2016 | 
| SwiftSwift Version | 3.0 | 
| SPMSupports SPM | ✓ | 
Maintained by Koji Murata.
This repository was forked from https://github.com/iamjono/SwiftString. I made it usable with cocoapods.
SwiftString is a lightweight string extension for Swift 3. This library was motivated by having to search StackOverflow for common string operations, and wanting them to be in one place with test coverage.
Note the original client side Swift 2 repo can be found here: https://github.com/amayne/SwiftString
This fork is intended as a server side utility.
import SwiftStringbetween(left, right)
"<a>foo</a>".between("<a>", "</a>") // "foo"
"<a><a>foo</a></a>".between("<a>", "</a>") // "<a>foo</a>"
"<a>foo".between("<a>", "</a>") // nil
"Some strings } are very {weird}, dont you think?".between("{", "}") // "weird"
"<a></a>".between("<a>", "</a>") // nil
 "<a>foo</a>".between("<a>", "<a>") // nilcamelize()
"os version".camelize() // "osVersion"
"HelloWorld".camelize() // "helloWorld"
"someword With Characters".camelize() // "somewordWithCharacters"
"data_rate".camelize() // "dataRate"
"background-color".camelize() // "backgroundColor"capitalize()
"hello world".capitalize() // "Hello World"chompLeft(string)
"foobar".chompLeft("foo") // "bar"
"foobar".chompLeft("bar") // "foo"chompRight(string)
"foobar".chompRight("bar") // "foo"
"foobar".chompRight("foo") // "bar"collapseWhitespace()
"  String   \t libraries are   \n\n\t fun\n!  ".collapseWhitespace() // "String libraries are fun !")count(string)
"hi hi ho hey hihey".count("hi") // 3decodeHTML()
"The Weekend ‘King Of The Fall’".decodeHTML() // "The Weekend ‘King Of The Fall’"
"<strong> 4 < 5 & 3 > 2 .</strong> Price: 12 €.  @ ".decodeHTML() // "<strong> 4 < 5 & 3 > 2 .</strong> Price: 12 €.  @ "
"this is so "good"".decodeHTML() // "this is so \"good\""endsWith(suffix)
"hello world".endsWith("world") // true
"hello world".endsWith("foo") // falseensureLeft(prefix)
"/subdir".ensureLeft("/") // "/subdir"
"subdir".ensureLeft("/") // "/subdir"ensureRight(suffix)
"subdir/".ensureRight("/") // "subdir/"
"subdir".ensureRight("/") // "subdir/"indexOf(substring)
"hello".indexOf("hell"), // 0
"hello".indexOf("lo"), // 3
"hello".indexOf("world") // nilinitials()
"First".initials(), // "F"
"First Last".initials(), // "FL"
"First Middle1 Middle2 Middle3 Last".initials() // "FMMML"initialsFirstAndLast()
"First Last".initialsFirstAndLast(), // "FL"
"First Middle1 Middle2 Middle3 Last".initialsFirstAndLast() // "FL"isAlpha()
"fdafaf3".isAlpha() // false
"afaf".isAlpha() // true
"dfdf--dfd".isAlpha() // falseisAlphaNumeric()
"afaf35353afaf".isAlphaNumeric() // true
"FFFF99fff".isAlphaNumeric() // true
"99".isAlphaNumeric() // true
"afff".isAlphaNumeric() // true
"-33".isAlphaNumeric() // false
"aaff..".isAlphaNumeric() // falseisEmpty()
" ".isEmpty() // true
"\t\t\t ".isEmpty() // true
"\n\n".isEmpty() // true
"helo".isEmpty() // falseisNumeric()
"abc".isNumeric() // false
"123a".isNumeric() // false
"1".isNumeric() // true
"22".isNumeric() // true
"33.0".isNumeric() // true
"-63.0".isNumeric() // truelatinize()
"šÜįéïöç".latinize() // "sUieioc"
"crème brûlée".latinize() // "creme brulee"lines()
"test".lines() // ["test"]
"test\nsentence".lines() // ["test", "sentence"]
"test \nsentence".lines() // ["test ", "sentence"]pad(n, string)
"hello".pad(2) // "  hello  "
"hello".pad(1, "\t") // "\thello\t"padLeft(n, string)
"hello".padLeft(10) // "          hello"
"what?".padLeft(2, "!") // "!!what?"padRight(n, string)
"hello".padRight(10) // "hello          "
"hello".padRight(2, "!") // "hello!!"startsWith(prefix)
"hello world".startsWith("hello") // true
"hello world".startsWith("foo") // falsesplit(separator)
"hello world".split(" ")[0] // "hello"
"hello world".split(" ")[1] // "world"
"helloworld".split(" ")[0] // "helloworld"times(n)
"hi".times(3) // "hihihi"
" ".times(10) // "          "toBool()
"asdwads".toBool() // nil
"true".toBool() // true
"false".toBool() // falsetoFloat()
"asdwads".toFloat() // nil
"2.00".toFloat() // 2.0
"2".toFloat() // 2.0toInt()
"asdwads".toInt() // nil
"2.00".toInt() // 2
"2".toInt() // 2toDate()
"asdwads".toDate() // nil
"2014-06-03".toDate() // NSDatetoDateTime()
"asdwads".toDateTime() // nil
"2014-06-03 13:15:01".toDateTime() // NSDatetoDouble()
"asdwads".toDouble() // nil
"2.00".toDouble() // 2.0
"2".toDouble() // 2.0trimmedLeft()
"        How are you? ".trimmedLeft() // "How are you? "trimmedRight()
" How are you?   ".trimmedRight() // " How are you?"trimmed()
"    How are you?   ".trimmed() // "How are you?"slugify()
"Global Thermonuclear Warfare".slugify() // "global-thermonuclear-warfare"
"Crème brûlée".slugify() // "creme-brulee"stripPunctuation()
"My, st[ring] *full* of %punct)".stripPunctuation() // "My string full of punct"substring(startIndex, length)
"hello world".substring(0, length: 1) // "h"
"hello world".substring(0, length: 11) // "hello world"[subscript]
"hello world"[0...1] // "he"
"hello world"[0..<1] // "h"
"hello world"[0] // "h"
"hello world"[0...10] // "hello world"Package.swift file:.Package(
    url: "https://github.com/iamjono/SwiftString.git", 
    majorVersion: 1, minor: 0
    ),Then, regenerate your Xcode project:
swift package generate-xcodeproj
Andrew Mayne, [email protected]
Swift 3 SPM module, Jonathan Guthrie, [email protected]
Cocoapods, Koji Murata, [email protected]
SwiftString is available under the MIT license. See the LICENSE file for more info.