Рейтинг:
2
Yvan Rodrigues
^([a-zA-Z0-9](?(?!__|--)[a-zA-Z0-9_\-])+[a-zA-Z0-9])$
или
^([a-zA-Z0-9](?(?!__|--)[a-zA-Z0-9_\-]){0,4}[a-zA-Z0-9])$
чтобы ограничить до 6 символов, как в вашем примере.
Волшебный соус-это
отрицательное утверждение lookaround.
Пожалуйста, отметьте
ответил если я помогу тебе.
—Иван
ridoy
да, это тот самый, как я уже сказал...+5
shaikh-adil
{0,4}
это займет 5 часов, верно? Так как же 6 будет принято? Я тебя не поймал
Yvan Rodrigues
Нет, это займет от нуля до четырех совпадений символов; плюс начальные и конечные символы == 6.
shaikh-adil
какая разница между вашим регулярным выражением и этим?
Ты можешь объяснить братан
^[a-zA-Z0-9]{1,5}(-[a-zA-Z0-9]{1,5}|_[a-zA-Z0-9]{1,5})?$
Yvan Rodrigues
Что означает:
- начните с 1 и 5 символов из набора a-z, A-Z, 0-9.
- следующий символ должен быть дефисом или подчеркиванием.
- заканчиваются от 1 до 5 символов из набора a-z, A-Z, 0-9.
- там должно быть от 3 до 11 символов.
Сделайте себе одолжение и скачивайте Экспрессо и прочитайте "30-минутный учебник по регулярным выражениям" на этом сайте.
shaikh-adil
Извини, братан. Но у меня скачать его не так просто, чтобы понять. Я ничего не могу там достать, поэтому спросил здесь.
И кстати.
какая разница между вашим регулярным выражением и этим?
Ты можешь объяснить братан
^[a-zA-Z0-9]{1,5}(-[a-zA-Z0-9]{1,5}|_[a-zA-Z0-9]{1,5})?$
правильно ли это? И то же самое, что и ваше право?
Ваш выход и этот выход будут равны
Yvan Rodrigues
Нет, не то же самое.
Во-первых, ваш может быть сокращен до ^[a-zA-Z0-9]{1,5}([\-_][a-zA-Z0-9]{1,5})?$
; однако она более ограничительна, чем моя.
Вот несколько примеров различий.
Мой позволит, твой запретит:
happy_fun_user
кроличья лапка
7
Салли-Джин Смит
shaikh-adil
но в какой-либо форме вы видели какое-либо имя пользователя, которое будет иметь подчеркивания и хифен в одном и том же месте одновременно?
Yvan Rodrigues
Я не понимаю. Я думаю, вам нужно точно уточнить, что вы хотите разрешить/запретить и каковы ваши допустимые минимальные/максимальные длины.
shaikh-adil
как Салли-Джин Смит?
Это действительно так?? Для имени пользователя?
А в вашем случае
только 7 является приемлемым? Is - это не такая уж хорошая вещь. Вы думаете
shaikh-adil
мне нужно имя пользователя i
который будет не менее 4 символов и не более 15 символы
что позволит использовать hifen, подчеркивание и точку посередине, но не в начале и конце имени пользователя
(что не позволит использовать символы, кроме hifen, подчеркивания и точки)
следует запретить
-aquib
_aquib
.aquibxyz
aquib.
aquibxyz--Куреши
aquib__xyzqureshi
aquibqureshi-
aquib..Куреши
aquib_ // означает, что в конце не будет никаких символов
и имя пользователя не должно быть цифрами это должно быть смешение цифр и алфавитов или это должны быть только алфавиты
надеюсь, это будет понятно.
Yvan Rodrigues
Конечно, это можно сделать с помощью регулярных выражений. Из-за всех предложений он потребует не менее 3 выражений, разделенных оператором|. К сожалению, вам придется найти кого-то, у кого будет больше свободного времени, чем у меня.
shaikh-adil
братан у меня есть это регулярное выражение
(?!^[a-zA-Z0-9\.\-_]{1,2}$)(?!^[a-zA-Z0-9\.\-_]{16,}$)(?!^[0-9]{3,15}$)^(?:[a-zA-Z0-9](?:\.|_|-)?)+[a-zA-Z0-9]$
а это то же самое что я хочу этого не требуется
аквиб__Куреши
aquib..Куреши
aquib--Куреши
-aquib
aquib-
aquib_
aquib_
это означает, что он не принимает никаких символов в начале и конце и не может принимать никаких последовательных символов
но проблема в том, что он принимает этот тип значений
aquib_qureshi-
мне нужен только один символ в ряду.
не могли бы вы мне помочь пожалуйста
shaikh-adil
ладно, я думаю, ты мне поможешь. Я подумал, что должен добавить точку с тире и подчеркиванием в свое регулярное выражение. Но мне не повезло. Это тебе не поможет.
Но в любом случае приятно провести время братан