All I need is to check using NSPredicate
and evaluate
pattern if my string contains .page.link
phrase.
extension String {
func isValid(for string: String) -> Bool {
NSPredicate(format: "SELF MATCHES %@", string).evaluate(with: self)
}
}
let pattern = ".page.link" // "\.page\.link"
"joyone.page.link/abcd?title=abcd".isValid(for: pattern) //false
"joyone.page.link".isValid(for: pattern) //false
"joyone.nopage.link/abcd?title=abcd".isValid(for: pattern) //false
I know there is a simpler way to do this, but it is a part of something bigger, and my pattern is just case in enum.
First two should be true
.
2
Answers
Of course @vadian answer is very correct and it is recommended, but here the solution is the following:
Thanks for the comment that it considers a whole string.
MATCHES
considers always the whole string.range(of:options:)
can also talkRegex
and is easier to use