gpt4 book ai didi

swift - 验证比特币地址的正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 07:07:01 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,如果它是一个有效的比特币地址,它会返回 true 或 false。

我目前有一个 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
}
}

不幸的是,这每次都返回 false。

我从这个站点得到了 RegEx 模式:http://mokagio.github.io/tech-journal/2014/11/21/regex-bitcoin.html

Swift 中的格式可能不同吗?

谢谢!

最佳答案

您正在将 self 与模式而不是 fullAddress[1] 进行比较。

使用以下内容:

func isValidBitcoinAddress() -> Bool {
let fullAddress = self.components(separatedBy: ":")
if fullAddress.count == 2 && fullAddress[0] == "bitcoin" {
let pattern = "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$"
let r = fullAddress[1].startIndex..<fullAddress[1].endIndex
let r2 = fullAddress[1].range(of: pattern, options: .regularExpression)
return r == r2
} else {
return false
}
}

关于swift - 验证比特币地址的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47300114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com