Валидация ссылки профилей из соц сетей js regex

259
15 июля 2017, 09:41

Хочу сделать правильную валидацию полей, для ввода линков, профайлов, из соц сетей.

Валидация проходит с помощью паттерна, и обрабатывается js внутри кода таким образом :

pattern = [а-яА-Яa-zA-Z]+

То хотел бы правильно сделать подобный паттерн, для трех полей (трех соц сетей) с приведенными ниже ссылками.

Это делаеться для того что бы пользователь вводил верный урл профайла своей соц сети, я замечал данный функционал на некоторых форумных профайлах (там работает не много по другому, вводиш ссылку, а он автоматом из нее парсит ник нейм, или айди) а на форуме просто подставляет урл.

Можно и такой вариант. Думаю он для реализации будет легче.

Вот список форматов профайлов

Хотел бы узнать как лучше всего организовать данную валидацию, с регулярками не очень знаком, но и гороздить тонну кода, тоже не хочется, может есть оптимальный вариант.

Вконтакте:

http://vk.com/id2123445566 
http://vk.com/nick_name
http://vk.com/nickname

Фейсбук:

https://www.facebook.com/profile.php?id=12312312123123
https://www.facebook.com/nickname

Одноклассники:

https://ok.ru/nickname
https://ok.ru/profile/123123231231
Answer 1

Регулярки для поиска идешки в урле профиля с идешкой:

// vk
(/https?:\/\/(www\.)?vk\.com\/id\d+/i).test('http://vk.COM/id2123445566');
// fb
(/https?:\/\/(www\.)?facebook\.com\/profile\.php\?id=\d+/i).test('https://www.facebook.com/profile.php?id=12312312123123');
// ok
(/https?:\/\/(www\.)?ok\.ru\/profile\/\d+/i).test('https://ok.ru/profile/123123231231');

Если в урле не идешка, а никнейм, то вам так или иначе придётся собрать все зарезервированные урлы, которые похожи на ссылки на профиль, но не являются ими. Например, /feed вконтакте - страница это новостей или профиль пользователя? Регуляркой этого не определить.

READ ALSO
Вывод изображения во всплывающем окне

Вывод изображения во всплывающем окне

Надумал я сделать изображения как у вк, при нажатие на изображения открывается окно, где само фото и автор, лайки и прочие

216
Можно ли изменить стиль <input> и <textarea> в js

Можно ли изменить стиль <input> и <textarea> в js

Есть форма, в ней "инпуты", с ними "текстарея", у этих ребят классstyle-animation

197
Кроссплатформенный календарь [требует правки]

Кроссплатформенный календарь [требует правки]

Нужен кроссплатформенный календарь с возможностью получения из него выбранной даты

233
Как обрезать строку правильно на PHP?

Как обрезать строку правильно на PHP?

Здравствуйте! Как правильно здесь обрезать строку так, чтобы получить только:

293