首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定litecoin地址是否有效

如何确定litecoin地址是否有效
EN

Stack Overflow用户
提问于 2014-05-09 16:53:20
回答 6查看 8.4K关注 0票数 1

我需要一种php中的方法来检查字符串是否是一个有效的litecoin地址。它不需要检查litecoin地址是否实际存在,但它没有无效(长度错误、非十六进制字符等等)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-05-09 17:09:20

一种可能的方法是使用正则表达式,网上有几种可用的,下面使用的方法来自regexlib.com

代码语言:javascript
复制
// the regular expression
$pattern = '/^L[a-zA-Z0-9]{26,33}$/';

// should fail 
$subject = "1EEVBLgg4h4TTLv76QiQ1Thcvvk3Be7VPV";
echo $subject . ' matches? ' . (preg_match($pattern, $subject) == 0 ? 'nope' : 'yup') . "\n";

// should pass
$subject = "Lg6GPVfPsmPAbTWYuKBQXtdGnBuCWcxHcr";
echo  $subject . ' matches? ' . (preg_match($pattern, $subject) == 0 ? 'nope' : 'yup') . "\n";

该正则表达式是接近的,但并不完全正确,因为它允许所有alpha &0通过,下面的一个更严格:

代码语言:javascript
复制
// the improved regular expression
$pattern = '/^L[a-km-zA-HJ-NP-Z1-9]{26,33}$/';

排除为优化可读性而从Base58Check中排除的Base58Check。

票数 2
EN

Stack Overflow用户

发布于 2014-05-09 16:58:14

您可以使用JSON RPC

像这样的事情应该有效:

代码语言:javascript
复制
$valid = $ltc->validateaddress($address);
if($valid['isvalid'] == "true") {
    echo "Valid address";
}
else {
    echo "Invalid address";
}

请参阅更多示例

如果这还不够,那么我保证这个问题已经在其他地方解决了,您可能只需要在搜索引擎中找到正确的关键字。

票数 2
EN

Stack Overflow用户

发布于 2018-10-23 14:58:14

@yuya regex完全覆盖了litecoin的主网络地址。

但是,如果您也想包括testnet地址,那么:

/^[LM3Q2mn][a-km-zA-HJ-NP-Z1-9]{26,34}$/

这还包括:

  • p2pkh地址,与比特币相同,以mn开头
  • 还有p2sh地址,以2 (旧)和Q (新)开头。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23570080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档