Все, Я пытаюсь построить регулярное выражение (я буду использовать, чтобы проверить действительные имена пользователей):RegExp игнорировать специальные и повторяющиеся символы (тестовое имя пользователя)
^[(0-9)|(_|\.)]|^[0-9]+$|[^a-zA-z0-9_.]{3,}|(_\.|\._)|\.{2,}|_{2,}
и его испытания с этой строкой:
[email protected] sslkdf*.sf...____.__sfsfdddddsss
Что это регулярное выражение должно проверить, является:
- строка не должна начинаться с цифр, подчеркивания или точка
- строка должна быть буквенно-цифровым
- не должен содержать символы повторяются трижды или более --this терпит неудачу
- не должна содержать подчеркивание и точка вместе
- не должны содержать точки и подчеркивания вместе
- не должны содержащие повторяющиеся точки, не должны содержать повторяющихся символов подчеркивания
Похоже, что все случаи согласованы, но третье. Он не захватывает повторяющиеся символы, повторяющиеся трижды или больше.
Мои вопросы:
- Как я могу исправить это регулярное выражение, поэтому он может поймать повторяющиеся символы?
- Как я могу оптимизировать это регулярное выражение?
Заранее спасибо
EDIT По просьбе действительную строку являются:
- Джона
- john.snow
- john.snow123
- john1.snow1
- john_snow
- john_snow123
- john1_snow1
недействительных струн:
- 1john.snow
- .john_snow
- john__snow
- john..snow
- jjjohn.снег
- _john_snow