如何确定litecoin地址是否有效

时间:2014-05-09 16:53:21

标签: php string

我需要在php中检查字符串是否是有效的litecoin地址。它不需要检查litecoin地址是否确实存在,但它不是无效的(错误的长度,非十六进制字符等......)。

5 个答案:

答案 0 :(得分:6)

Litecoin地址以L或M或3开头,因此Regex应低于

$pattern = '/^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$/';

答案 1 :(得分:2)

您可以使用JSON RPC

这样的事情应该有效:

$valid = $ltc->validateaddress($address);
if($valid['isvalid'] == "true") {
    echo "Valid address";
}
else {
    echo "Invalid address";
}

See more examples

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

答案 2 :(得分:2)

一种可能的方法是使用正则表达式,有几种在线可用,下面使用的是[{3}}

// 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传递,下面的更严格:

// the improved regular expression
$pattern = '/^L[a-km-zA-HJ-NP-Z1-9]{26,33}$/';

排除了从Base58Check中排除的0OIl以获得最佳可读性。

答案 3 :(得分:0)

@ yuya-ogawa regex完全涵盖了litecoin的主网地址。

如果您还想包括测试网地址:

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

这还包括:

  • 与比特币相同且以mn开头的p2pkh地址
  • 以及以2(旧)和Q(新)开头的p2sh地址。

答案 4 :(得分:0)

ltc1qkehw26l582teu5ryqqe9jzs4cph4wspvnq0smm

此地址不匹配...

https://www.regextester.com/99712