📱
Stringが特定のCharacterSetだけで構成されているかを調べる方法
Stringが特定のCharacterSetだけで構成されているかを知りたい
例えば、許容する文字列にアルファベット、数字、"-", "#", "&"を指定したいとする。そんな時、こんな風に書ける。
var characterSet = CharacterSet()
characterSet.formUnion(CharacterSet.alphanumerics)
characterSet.insert("-")
characterSet.insert("#")
characterSet.insert("&")
return trimmingCharacters(in: characterSet).isEmpty
余談
これは trimmingCharacters(in:)
がStringの両端がCharacterSetに含まれていたらトリミングするから、もし、StringがCharacterSetだけで構成されていたらString.trimmingCharacters(in:)
の結果が空文字になるから成立している。
例えばこんな感じ。
"ABC".trimmingCharacters(in: .alphanumerics) // -> ""
ただ、ぱっと見わかりにくいような気もするので、なんだかなという気持ち。
Discussion