SugarString 1.0.1

SugarString 1.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年4月
SwiftSwift 版本3.0
SPM支持 SPM

ooppstef维护。



  • Charles

Sugar

Sugar是Swift3中String的美丽语法糖,灵感来自Ruby。完全测试。

字符串的三个部分

  • 运算符:与RangeTupleIndexKey的订阅;运算符-*/
  • 正则表达式:gsubscanmatch=~
  • 将文本转换为资源:datecolorimagebundle pathnib等。

享受语法糖的乐趣吧!

需求

Swift3

安装

通过CocoaPods可用

pod 'SugarString'

使用

import SugarString

详细信息

运算符

使用Range(start … end)订阅
let str = "0123456789"
str[0 ..< 3] //=> "123"
var str = "0123456789"
str[0 ..< 3] = "abc" //=> (str = "abc3456789")
使用Tuple(location,length)订阅
var str = "0123456789"
str[(5,10)] //=> "abcde"
var str = "0123456789"
str[(3,7)] = "abcde" //=> str = "012abcde"
使用索引订阅
let str = "0123456789"
str[0] //=> "0"
var str = "0123456789"
str[0] = "A" //=> str1 = "A123456789"
使用key订阅
let url = "https://google.com?a=b&c=d"
url["a"] //=> "b"
let string = "abcdef"
string["a"] //=> nil
运算符: -
"000111000" - "0" //=>"111"
"aa aabbccdd" - "aa" //=> " bbccdd"
"123" - "abc" //=> "123"
运算符: *
"abc" * 3 //=> "abcabcabc"
"" * 3 //=> ""
运算符: /
"1,2,3" / "," //=> ["1","2","3"]
"1 2 3" / " " //=> ["1","2","3"]
"1 2 3" / "," //=> nil

正则表达式

运算符: =~
let str = "0123456789\n  abcef"
str =~ "0" //=> true
str =~ "A" //=> false
str =~ "^0\\d*\\s*.*f$" //=> true
gsub
var string = "0123456789\n  abcef"
string.gsub(reg: "^0\\d*\\s*.*f$", replacement: "") //=> string = ""

string = "0123456789\n  abcef"
string.gsub(reg: "[359]", replacement: "TTT") //=> string = "012TTT4TTT678TTT\n  abcef"
scan

它返回[(String?, NSTextCheckingResult)]?

let string = "0123456789\n  abcef"
let array = string.scan(reg: "\\d") //=> array = [0,1,2,3,4,5,6,7,8,9]
match
let string = "0123456789\n  abcef"
result = string.match(reg: "\\d+") //=> "0123456789"

资源

带有文本字面量的某些便利函数。

日期

尝试用两种默认格式获取日期,然后尝试将其转换为TimeInterval以获取日期

//default format 1
"2020-01-01".date() //=> Date:2020-01-01

//default format 2
"2020-01-01 00:00:00".date() //=> Date 2020-01-01 00:00:00

//timeinterval
"1577808000".date() //=> 2020-01-01 00:00:00
"-1".date() //=> nil

//format with parameter
"2020/01/01".date(format: "yyyy/MM/dd") //=> 2020/01/01
颜色
"255 255 255".color()    //=> white
"255,255,255".color()   //=> white
"#ffffff".color()       //=> white
"0x000000".color()      //=> black
"000000".color()        //=> black
"00FF00".color()        //=> green

"1255 255 255".color()  //=> nil
"-1,-1,-1".color()      //=> nil