Swift 文字列が半角数字(半角英数字)のみか判定するには

swift

想定した値以外を保存されると困る事があったので、許容した値(半角数字)かどうかを判定する方法を紹介します。

半角数字のみ許容する

半角数字かどうかを判定する為に、class外に以下を記述します。

extension String {
  // 半角数字の判定
  func isAlphanumeric() -> Bool {
    return self.range(of: "[^0-9]", options: .regularExpression) == nil && self != ""
   }
}

半角数字のみならtrue 半角数字以外が含まれる場合はfalseが返ってきます。

なのでデータ保存時に

setTextField.text?.isAlphanumeric() == true

とする事で「半角数字のみが含まれているか」判定することが可能です。

半角数字と.(ドット)を許容する

extension String {
  // 半角数字とドットの判定
  func isAlphanumeric() -> Bool {
    return self.range(of: "[^.0-9]", options: .regularExpression) == nil && self != ""
  }
}

半角英数字のみ許容する

extension String {
  // 半角数字とドットの判定
  func isAlphanumeric() -> Bool {
    return self.range(of: "[^a-zA-Z0-9]", options: .regularExpression) == nil && self != ""
  }
}

メソッドを使用する事で簡単に判定が出来ました。

コメント

タイトルとURLをコピーしました