2009-05-20 5 views
1

Каков наилучший символ для ограничения ввода пользователем?Разграничение пользовательского ввода

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

Я думаю, что это должен быть символ не на вашей типичной клавиатуре. Есть ли там персонаж только для этого?

ответ

7

Вы можете использовать один из символов управления ASCII. Там один называется «Record Separator», который имеет шестнадцатеричное значение 0x1E, которое может соответствовать вашим потребностям.

Редактировать: Кстати, если вы хотите сделать правильную работу, вы должны, вероятно, убедиться, что \ x1E экранирован во вход пользователя. Один из способов сделать это - использовать другой управляющий символ ASCII: \ x1B, который является управляющим кодом «escape». Таким образом, «\ x1E» на входе становится «\ x1B \ x1E», а «\ x1B» становится «\ x1B \ x1B».

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

+0

Как насчет Unicode? –

+3

Как насчет этого? ASCII занимает первые 128 кодовых точек Unicode, что означает, что любой символ ASCII в Unicode одинаковый. –

+0

О да. Дух. –

1

Обычно для разделения данных используются запятые или полуколоны. Как насчет | который средний пользователь никогда не использует?

+0

Но все эти символы могут быть введены пользователем. Я подумал о трубе или двух трубах, но я хотел бы найти то, что нельзя было напечатать. –

+1

Ну что угодно можно набрать. Вы можете использовать некоторые jQuery или Javscript для блокировки ввода этого символа. –

+0

Правда. Но я все еще могу обогнать среднего козла. –

0

Как насчет комбинации клавиш? например

|::| 

так

this|::|and|::|that. Plus Those:Here and there.|::|Even this|that works 
+0

Его можно ввести. –

+0

О, конечно ... но вероятность гораздо меньше, чем у одного персонажа. например труба. «Сепаратор записи», скорее всего, будет идти. – scunliffe

3

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

0

Любой язык разметки сделает это. Они немного подробные, но, по крайней мере, они будут в будущем проверять ваше поле.

-1

использование & сердца; ftw

+0

ftw? –

+1

ftw означает 'Для победы' :) –

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