Молбa за помощ


0
Здравейте! Не знам до колко е подходящ този форум или по-скоро до колко е подходящо моето запитване точно тук, но търся малко помощ за решението на една що-годе лесна задача (поне такава ми се видя на пръв поглед, но се затрудних при решението). Някой дали би ми помогнал с обяснение или едни примерно решение върху което да помисля защо и как се лсучват нещата по задача със следното условие: " Да се напише метод за проверка дали въведен IBAN е валиден. Да връща отговор от boolean тип". Трябва да реализирам задачата чрез .NET. Благодаря много предварително за помощта, която искрено се надявам да получа!

в C# Programming от Asq Stoqnova (0 точки)


Отговори



0

Най-лесния начин е като се използва Regex класа с някой регулярен израз. За БГ IBAN може да видиш тук:

http://serprest.pt/jquery/ht5ifv/extensions/tools/IBAN/


от Teodor92 (13062 точки)


0
За първи път чувам за този клас.

от Asq Stoqnova (0 точки)

0
Ако ти е трудно, може да погледнеш тези примери: http://www.dotnetperls.com/regex

от Teodor92 (13062 точки)


2

Потърси информация в Гугъл за валидността на IBAN-номерата. Например >>това<< вероятно ще ти свърши работа. :)


от varbanoff (2325 точки)


2

IBAN номера започва с кода на банката и заради това е необходимо да провериш дали тези символи съвпадат с кода на банка в България - ако трябва да се проверява инернационален IBAN следното предложение няма да е адекватно:

- със switch проверяваш дали частта с кода на банката и страната е валиден;

- останалата част трябва да е само цифри и за това ти трябва проверка дали всеки знак е цифра.

Ето няколко линка, които обясняват структурата на IBAN:

http://en.wikipedia.org/wiki/International_Bank_Account_Number

http://www.ibancalculator.com/

http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html


от pr3d4t0r (100 точки)


0

До колкото знам можеш само да провериш дали е въведен вярно IBAN-a но не и валидността му. Тоест не можеш да провериш дали въобще има такъв IBAN, а само дали "изглежда" валиден. Това се прави чрез регулярни изрази (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx).

Надявам се да съм помогнал :)


от oklav (115 точки)


0
Има краен брой BIC, тоест трябва да направиш един списък и да проверяваш дали въведения BIC е валиден - това е добавка към всичко останало, което са ти казали колегите

от bgatev (1491 точки)


0
Да, точно това е идеята! Явно аз не съм се изкалза съвсем точно, но ти си съвсем прав - въпросът е дали "изглежда" вярно ;).

от Asq Stoqnova (0 точки)


1

Ето едно решение набързо цък

Проверява се дали въведеното е с 22 символа, ако не е е невалиден IBAN.

Първите 4 символа се местят най-отзад. След това на всяка буква се поставя двуцифрено число като А=10, Z=35. Или английската азбука в масив и към позицията на всяка буква добавяш 10 и превръщаш в стринг. Стрингът се парсва към BigInteger и се намира мод. Ако мод==1 IBAN e валиден.

Едит: В бързината не прочетох, че трябва да е метод с параметър и да връща bool, но ти ще го направиш.


от ttitto (1950 точки)


0
Много благодаря!!

от Asq Stoqnova (0 точки)

0
Колегата е помогнал много с кода, а примерно ето тук (http://itservice-bg.com/polezno-info/42-other-info/52-iban-information.html) може да погледнеш какви точно са стъпките при валидиране на IBAN-а (това, което е имплементирано в кода по-горе).

от Drago (711 точки)


0
Хора, още веднъж повтарям, че IBAN- ите не са просто едни регулярни изрази - има си конвенции на държавите, какво точни да бъдат буквите и т.н. - С регулярните изрази и чексумата могат да се хванат само една малка част от невалидните IBAN-и. По-голямото отсяване трябва да се направи, като се изнамерят BIC-овете на всички банки

от bgatev (1491 точки)


0
Колега, ти нали прочете, че става дума за Bulgarian IBAN в задачата?

от ttitto (1950 точки)

0
И български IBAN да е - пак всяка банка си има списък с разрешените BIC-ове

от bgatev (1491 точки)