2013-10-01 2 views
1

Я делаю сайт, который требует, чтобы пользователи вводили номер своего паспорта.Ввод номеров паспортов в форме веб-сайта

пример паспорта нет (line1): P<GBRBARNEY<<GABRIELLA<<<<<<<<<<<<<<<<<<<<<<

Правила: http://en.wikipedia.org/wiki/Machine-readable_passport

В идеале я хотел бы способ попросить информацию, но не шевронов.

У кого-нибудь есть опыт? Кажется, проблема была у других, но мне не повезло найти какую-либо информацию/руководство.

Любая помощь была бы принята с благодарностью. Мой клиент очень заинтересован в том, чтобы пользователям не приходилось вводить полные 44 цифры каждый раз.:/

Большое спасибо.

+2

Меньше знаков не является частью номера паспорта (или цифр в этом отношении), они являются всего лишь маркерами для машиночитаемой секции. Имя владельца также не входит в номер паспорта. Человекочитаемая часть паспорта не покажет их в номере. – Quentin

ответ

0

Просто спросите пользователям вводить текст с пробелами между ними, а затем заменить несколько пробелов одним пробелом, а затем разделить на пространствах, чтобы получить все сегменты, а затем положить кусочки вместе с шевронов:

string inputStr = "P GBRBARNEY GABRIELLA"; 
string mask = "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; 
Regex regex = new Regex(@"[ ]{2,}", RegexOptions.None);  
inputStr = regex.Replace(inputStr, @" "); 
string[] segments = inputStr.Split(' '); 
string finalStr = (segments[0] + "<" + segments[1] + "<<" + segments[2] + mask).Substring(0,44); 

Если у вас есть разные форматы ввода, вам нужно сменить сборку в зависимости от типов ввода и, возможно, разделить входные данные на отдельные поля ввода, чтобы вы знали, какой сегмент является им.

+0

На каком языке это? – VladHQ

+0

Спасибо, это звучит как хороший маршрут! – W4T3RST1CK

+0

@ user0000001 Язык C# – guymid

0

Возможно, вы захотите использовать javascript. Проверьте введенные данные (количество символов) в форму и заполните ее размером «<».

Смежные вопросы