X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Проверка (валидация) адресов Bitcoin на сайте
k0ttee
k0ttee
Topic Starter сообщение 27.9.2020, 6:27; Ответить: k0ttee
Сообщение #1


Проверка адресов Bitcoin на сайте - нужная часть, когда используется приём и отправка Bitcoin на сайте. Валидация адреса Bitcoin полезна в формах в любом случае, будь то свой кошелёк на сервере или подключенный сервис.

Валидация адреса Bitcoin на JS

address = address.trim(); //выбросить пробелы и концы строки в начале и конце


Проверка на пустоту. Технически можно обойтись и проверкой длинны, но если показывать пользователю в чём ошибка - пустоту тоже стоит проверять.
if(address.length==0){
    console.log('адрес пуст'); //адрес пуст
    return false;
}


Проверка на короткость. Минимальная длина адреса - от 26 символов.
if(address.length<26){
    console.log('адрес слишком короткий (меньше 26 символов)');
    return false;
}


Проверка на длинность. Максимальная длина адреса - до 35 символов.
if(address.length>35){
    console.log('адрес слишком длинный (больше 35 символов)');
    return false;
}


Проверка допустимых символов: только латинские буквы (заглавные и прописные) и цифры. Пусть пока ещё может состоять только из цифр и только из букв, следующим шагом проверим префикс.
var addressRegExp = /[^a-zA-Z0-9]+/g;
if(addressRegExp.test(address)){
    console.log('в адресе не только заглавные и прописные латинские буквы и цифры');
    return false;
}


Из таблицы префиксов адресов известно, что адреса начинаются на 1, 3 или bc1. Таким образом, проверяем в начале строки.
var prefixRegExp = /^[^1|3|bc1]/;
if(prefixRegExp.test(address)){
    console.log('адрес начинается не с префикса (1 или 3 или bc1)');
    return false;
}


Валидация размера платежа Bitcoin на JS

amount = amount.trim(); //выбросить пробелы и концы строки в начале и конце
amount = amount.replace(/,/gi, '.'); //сменить запятые на точки для унификации


Если размер платежа не заполнен, длина строки нулевая.
if(amount.length==0){
    console.log('размер платежа пуст'); //размер платежа пуст
    return false;
}


Если размер платежа не цифра, невозможно проводить с ней тупую математическую операцию (это гораздо проще нагромождения регулярного выражения)
if(!(amount == +amount)){
    console.log('размер платежа это не цифра'); //размер платежа это не цифра
    return false;
}


Если после точки в размере платежа 9 или более цифр, дробная часть слишком длинная (сатоши это до 8 цифр после точки)
if(/\.\d{9,}/.test(amount)){
    console.log('размер платежа имеет больше 8 цифр после точки (9 или больше)'); //размер платежа имеет больше 8 цифр после точки (9 или больше)
    return false;
}


Валидация адреса и размера платежа на PHP - да теми же ругулярками. На сервере может быть Python, или C#, или другой язык, поэтому я решил опубликовать универсальный браузерный вариант. Позже добавлю аналогичную валидацию на PHP.

P.S: мой адресок для донатов 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) CryptoCloud — прием USDT, BTC, ETH, LTC на любом сайте
34 CryptoCLoud 10071 18.3.2024, 16:56
автор: CryptoCLoud
Открытая тема (нет новых ответов) Странный трафик на сайте длительное время
26 TABAK 7520 16.3.2024, 17:31
автор: Boymaster
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрый и качественный обмен на сайте Baksman.org
Обмен Bitcoin, BTC-e, PM, Qiwi, Yandex money, Карты банк
51 Baksman 33208 15.3.2024, 21:14
автор: Baksman
Горячая тема (нет новых ответов) Проверка позиций сайтов в поисковых системах с помощью Positon.ru
Мониторинг продвижения сайтов
182 Positon 178940 23.2.2024, 9:53
автор: Positon
Открытая тема (нет новых ответов) Алтуально ли заработок на сайте?
Оцение пожалуйста идею
10 hitman20 1780 1.2.2024, 5:37
автор: Liudmila


 



RSS Текстовая версия Сейчас: 29.3.2024, 2:12
Дизайн