#javascript #regex
#javascript #регулярное выражение
Вопрос:
Оно должно соответствовать этим URL-адресам
https://example.com/id/username/
http://example.com/id/username/
https://www.example.com/id/username
http://example.com/id/username/
по сути, оно должно начинаться с http
или https
, когда, возможно www
, когда example.com
и /id
и последнее — это имя пользователя, которое может быть любым, и /
не всегда в конце
имя пользователя может быть любым
Я получил это до сих пор:
if (input.match(/http://example.com/i)) {
console.log('-');
}
также как проверить с помощью регулярного выражения, заканчиваются ли URL-адреса числом 7, подобным 1234567/
или 3523173
. /
не всегда в конце
Комментарии:
1. Пожалуйста, укажите URL-адреса, где они не будут совпадать
2. что-нибудь еще не должно быть много
3. Пожалуйста, будьте более точными: являются ли идентификаторы только числовыми или буквенно-цифровыми (включая буквы, то есть). Как насчет имен пользователей? Могут ли они содержать числа,
-
,.
или любые другие символы?4. Можете ли вы добавить несколько допустимых / недопустимых примеров?
5. идентификаторы — это буквы только в этом случае, они не могут содержать
-
или.
только букву, моя ошибка
Ответ №1:
Используйте следующее регулярное выражение
http(s)?://(www.)example.com/id/[a-zA-Z0-9]
При необходимости вы можете изменить [a-zA-Z0-9] в соответствии с вашим форматом имени пользователя. Смотрите следующий пример:
- [a-zA-Z0-9] ==> Имя пользователя содержит прописные, строчные буквы, число. (john008)
- [a-zA-Z] ===> Имя пользователя содержит прописные, строчные буквы. (джон)
- [0-9] ===> Имя пользователя содержит только номер. (123456)
Комментарии:
1. как насчет URL-адресов, без
www.
которых, похоже, не так много2. Вы можете использовать это с www. или без www. Сопоставляются все URL-адреса с или без воли.
3. idk, возможно, я делаю что-то не так, но
https://example.org/id/username
не mactch4. Вы хотите использовать в javascript?
5. var regex = /http(s)?://(www.)example.com/id/[a-zA-Z0-9] /ig; if ( regex .test(ввод) ) { console.log(‘-‘); }
Ответ №2:
https?://(www.)?example.com/id/([a-zA-Z] )/?
Комментарии:
1. https?://(www .)?example.com / id /w /? мне кажется лучше, поскольку имя пользователя в большинстве случаев также может содержать числа.
2. на момент ответа имя пользователя было ограничено только буквами
Ответ №3:
Без дополнительной спецификации вы могли бы использовать
bhttps?:. ?example.com/[a-zA-Z] /w /?(?=s|Z)
Смотрите демонстрацию на regex101.com .
Это
b # a word boundary
https?: # http/https:
. ? # anything else afterwards, lazily
example.com # what it says
/[a-zA-Z] /w /? # /id/username with / optional
(?=s|Z) # followed by a whitespace or the end of the string