Задать вопрос
Abramov7
@Abramov7

Как составить регулярное выражение JS?

Имеется строка, в которой хранится URL типа:
https://site.com/user12345


Нужно посредством регулярных выражений получить ID (что после user). Также есть нюанс в том, что некоторые пользователи могут устанавливать уникальный URL для своего профиля, т.е. вместо
https://site.com/user12345

может быть
https://site.com/username777

Тогда нужно получить не «777», а «username777»,

С регулярными выражениями какой-то завал у меня...
  • Вопрос задан
  • 222 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
hahenty
@hahenty
('•')
function rexex( s ) {
  return s.replace( /^https?\:\/\/site\.com\/(?:user(\d+)|(\S+))$/, '$1$2' );
}

console.log( rexex('https://site.com/user12345') );
console.log( rexex('https://site.com/username777') );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
gobananas
@gobananas
finishhim.ru
1) Запретить использовать слово user в имени или начинаться с букв user
2) Как вариант разделить url на site.com/user/12345
3) Заюзать регулярку https://regex101.com/r/qB8XiD/1/ и очистить её результат от "/user"
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
var arr= ['https://site.com/user12345','https://site.com/usename777'];
	arr= arr.map(function(i) {
		return i.replace(/.+(user|\/)(\S+)$/i, "$2");
	});
	console.log('arr= ' , arr);
Ответ написан
Комментировать
twobomb
@twobomb
var id = "https://site.com/user12345".match(/\d+$/);//12345
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы