Предполагая, что вы используете javascript, используйте это:
/[a-zA-Z]{3,}/
Это будет соответствовать по крайней мере три символа не менее трех букв в любой части строки.
Мне это не нравится. Я думаю, что этот класс должен быть а) удален один раз б) кодом, который его создал. IDisposable
обычно понимается как способ реализации шаблона RAII . MSDN явно указывает:
Если метод Dispose объекта вызывается более одного раза, объект должен игнорировать все звонки после первого. Объект не должен вызывать исключение если вызывается его метод Dispose многократно. Другие методы экземпляра чем Dispose может бросить ObjectDisposedException, когда ресурсы уже утилизированы.
Пользователи сочтут такое поведение запутанным, поэтому я рекомендую разработать класс так, чтобы он создавался при каждом вызове:
using (var clientFactory = new ClientFactory())
clientFactory.Client.WCFMethod1();
Безусловно, этот код - плохая практика. Именно вызывающая сторона решает, нужен ли экземпляр или нет. Предполагается, что после вызова метода Dispose вызов метода больше не допускается (согласно инструкции, экземпляр переходит в состояние disposed). Представьте, что вы вызываете один метод, затем другой и получаете исключение ObjectDisposed. Немного странно, не так ли?