Использование селектора «начало с» может работать для вас:
$('[id^=video]').on('shown.bs.modal', function() {
$('#autoplay-' + $(this).attr('id'))[0].play();
})
$('[id^=video]').on('hidden.bs.modal', function() {
$('#autoplay-' + $(this).attr('id'))[0].pause();
})
Но это может сломаться, если у вас есть другие элементы с идентификатором, начинающимся с «видео», например:
<div id="video-wrapper">…</div>
Поэтому я бы рекомендовал использовать пользовательский атрибут данных, чтобы избежать следующих проблем:
<video data-video="1">…</video>
$('[data-video]').on('shown.bs.modal', function() {
$('#autoplay-video' + $(this).attr('data-video'))[0].play();
})
$('[data-video]').on('hidden.bs.modal', function() {
$('#autoplay-video' + $(this).attr('data-video'))[0].pause();
})