有効なビットコインアドレスであれば真または偽を返す関数を記述しようとしています。ビットコインアドレスを検証するための正規表現
ビットコイン:このような文字列を返す
私は現在、QRコードスキャナを持って18YCdhPsd5gdf6WD4ioMZZJKTNdajUJyTM
は、ここに私の機能です:
func isValidBitcoinAddress() -> Bool {
var fullAddress = self.components(separatedBy: ":")
let r = fullAddress[1].startIndex..<fullAddress[1].endIndex
let pattern = "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$"
let r2 = self.range(of: pattern, options: .regularExpression)
if r2 == r {
return true
} else {
return false
}
}
残念ながら、これは偽のたびに戻っています。
私はこのサイトから正規表現のパターを得た:http://mokagio.github.io/tech-journal/2014/11/21/regex-bitcoin.html
はスウィフトで、おそらく別のフォーマットですか?
ありがとうございます!
'fullAddress [1] .startIndex ..' fullAddressは、[1]これはのように思える –
Alexander
.indices'弱いタイプ。 'String'に' isValidBitcoinAddress'メソッドを追加するのではなく、 'String'をラップする' BitcoinAddress'と呼ばれる構造体を作ることを検討し、与えられた文字列が有効なアドレスであれば成功する初期化子を提供します。そこから、あなたのアプリケーションは 'BitcoinAddress'インスタンスだけで動作することができ、文字列を使用するのではなく、すべての時間をチェックする必要がなく、それらが有効なアドレスになることが確実です。 – Alexander
チップをありがとう! – KrispyK