Raja Ganapathy Ответов: 3

Как проверить, есть ли в текстовом поле только специальный символ?


я хочу проверить текстовое поле.это текстовое поле содержит проверку доступности номера товара .если пользователь вводит только специальный символ, например( !@#$%^&+)(**)_)":}{?> )бросьте предупреждающее сообщение.

Что я уже пробовал:

Я использую

Регулярное выражение r = новое регулярное выражение(@"[~`!@#$%^&усилитель;*()+=|\\{}':;.,<>/?[\]""_-]");
если (Р.Выполняется(tbxspirno.Текст.Метод toString().Отделка()))
{
Мастер.ShowMessage("введите действительный номер товара", MessageHelper.MessageType.Информация);
}

вышеописанный метод проверки текстового поля, но сообщение об ошибке не отображается.

Garth J Lancaster

Я бы проверил ваше регулярное выражение - Я думаю, что оно соответствует только одному символу - вам нужно добавить " * " или " + "после последнего"]", т. е. @"[~`!@#$%^&усилитель;*()+=|\\{}':;.,<>/?[\]""_-]*"

Karthik_Mahalingam

текстовое поле должно содержать только цифры?

Raja Ganapathy

нет, в этом текстовом поле есть цифра, буква и специальный символ, а не только специальный символ.
m_item-152

3 Ответов

Рейтинг:
27

Muhammad Rehbar Sheikh

var regexItem = new Regex("^[a-zA-Z0-9 ]*$");
if(regexItem.IsMatch(YOUR_STRING)){..}

The easiest way it to use a regular expression:

Regular Expression for alphanumeric and underscores

Using regular expressions in .net:

http://www.regular-expressions.info/dotnet.html

MSDN Regular Expression

Regex.IsMatch


Рейтинг:
19

BillWoodruff

Альтернатива регулярному выражению с использованием Linq:

// required
using System.Linq;

// in some Form, or Class, scope

public const string SpecialChars = @"(!@#$%^&+)(*)_\:}{?>)";

public bool ValidateHasOneSpecialCharacter(string str)
{
    return str.Count(ch => SpecialChars.Contains(ch)) == 1;
}
Примечание:

1. вы могли бы использовать тип char.Метод IsPunctuation, но некоторые символы, которые вы определяете как специальные, не считаются "специальными" этим методом; например: знак доллара, стрелка вверх, клавиши больше и меньше, чем. Видеть: [^].

2. Char.IsPunctuation вернет true для этих символов в диапазоне 0~128: "!"#%&усилитель;'()*,-./:;?@[\]_{}'" а также символы Юникода, которые вы найдете документированными в ссылке, приведенной выше.


Рейтинг:
10

Patrice T

Еще один вопрос о регулярных выражениях ! Что вы не поняли в своих предыдущих вопросах ?

Вам нужно научиться использовать регулярные выражения.

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Patrice T

Для downvoter: этот вопрос является только четвертым по использованию регулярных выражений.