Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Как отфильтровать недопустимые символы?


Автор: Neugomonnyj 3.4.2009, 14:26
                                                       
  Всем привет!


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

 Всем спасибо!


Автор: Voyager 3.4.2009, 16:30
Маска?

Автор: Neugomonnyj 4.4.2009, 18:55
Да,все недопустимые символы заранее определены 
и при вводе символов они проверяются на схожесть

Подскажите пожалуйста, может уже существует готовая функция

Заранее спасибо!

Автор: -Mikle- 4.4.2009, 19:25
А MaskedTextBox не подходит?

Цитата(MSDN)
Свойство Mask используется по умолчанию для класса MaskedTextBox.

Маска Mask должна быть строкой, состоящей из одного или нескольких элементов маски, как показано в следующей таблице. Язык маски, используемый в элементе управления MaskedTextBox, определяется сопоставленным с ним объектом MaskedTextProvider. Стандартный поставщик задает язык масок, основанный на языке, используемом в элементе управления Masked Edit в Visual Basic 6.0, и пользователи, переходящие с данной платформы, должны быть хорошо знакомы с этим языком.

Элемент маски
 Описание
 
0
 Цифра, необходимый символ. Для этого элемента допускается любая одиночная цифра от 0 до 9.
 
9
 Цифра или пробел, необязательный символ. 
 
#
 Цифра или пробел, необязательный символ. Если эта позиция в маске пуста, в свойстве Text она будет представлена пробелом. Допускаются знаки плюса (+) и минуса (-).
 
L
 Буква, необходимый символ. Ограничивает вводимые данные наборами букв ASCII от a до z и от A до Z. Этот элемент маски аналогичен регулярному выражению [a-zA-Z]. 
 
?
 Буква, необязательный символ. Ограничивает вводимые данные наборами букв ASCII от a до z и от A до Z. Этот элемент маски аналогичен регулярному выражению [a-zA-Z]?. 
 
&
 Символ, необходимый. Если свойство AsciiOnly имеет значение true, этот элемент действует аналогично элементу "L". 
 
C
 Символ, необязательный. Любой символ, кроме управляющих. Если свойство AsciiOnly имеет значение true, этот элемент действует аналогично элементу "?".
 
A
 Буква или цифра, необязательный символ. Если свойство AsciiOnly имеет значение true, будут приниматься только буквы ASCII от a до z и от A до Z.
 
a
 Буква или цифра, необязательный символ. Если свойство AsciiOnly имеет значение true, будут приниматься только буквы ASCII от a до z и от A до Z.
 
.
 Местозаполнитель для десятичного разделителя. Символ десятичного разделителя, который будет фактически отображаться, соответствует поставщику форматирования, определяемому свойством FormatProvider элемента управления.
 
,
 Местозаполнитель для разделителя групп разрядов. Символ разделителя групп разрядов, который будет фактически отображаться, соответствует поставщику форматирования, определяемому свойством FormatProvider элемента управления.
 
:
 Разделитель компонентов времени. Символ разделителя компонентов времени, который будет фактически отображаться, соответствует поставщику форматирования, определяемому свойством FormatProvider элемента управления.
 
/
 Разделитель компонентов даты. Символ разделителя компонентов даты, который будет фактически отображаться, соответствует поставщику форматирования, определяемому свойством FormatProvider элемента управления.
 
$
 Символ денежной единицы. Символ денежной единицы, который будет фактически отображаться, соответствует поставщику форматирования, определяемому свойством FormatProvider элемента управления.
 
<
 Переключение в нижний регистр. Преобразует все последующие символы в нижний регистр. 
 
> 
 Переключение в верхний регистр. Преобразует все последующие символы в верхний регистр.
 
|
 Отмена предыдущего изменения регистра.
 
\
 Escape-знак Заменяет символ маски на литерал. "\\" — escape-последовательность для обратной косой черты. 
 
Все остальные символы
 Литералы. Все элементы, не образующие маску, отображаются в элементе управления MaskedTextBox без изменений. Литералы всегда занимаю статическую позицию в маске во время выполнения, и пользователь не может перемещать или удалять их. 


Автор: Neugomonnyj 5.4.2009, 10:48
Я совсем недавно начал изучать язык
А вы бы не могли показать как это выглядит в коде на C#?


Спасибо!

Автор: -Mikle- 5.4.2009, 14:00
В коде не надо ничего делать. Есть такой контрол, называется MaskedTextBox. Он находится там же, где и другие контролы (Button, TextBox, Label ...). Просто ставишь его на форму и задаешь свойство Mask у этого контрола в окне свойств. Свойство Mask задаешь в соответствии с тем, что тебе нужно "отфильтровать". 

Автор: Neugomonnyj 6.4.2009, 03:58
Извиняюсь я сразу не указал что это проект не win form,а web страница,
а там MaskedTextBox - нет

Автор: KelTron 6.4.2009, 09:12
Если это ASP.NET то создаёшь TextBox, создаёшь RegularExpressionValidator, свойство валидатора ControlToValidate устанавливаешь на данный текст бокс, а в свойство ValidationExpression пихаешь необходимое регулярное выражение...

Автор: Neugomonnyj 6.4.2009, 18:04
Ребята спасибо за помошь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)