Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При копировании и вставке поменять часть текста (https://javascript.ru/forum/jquery/86227-pri-kopirovanii-i-vstavke-pomenyat-chast-teksta.html)

tp-20 23.12.2024 18:06

При копировании и вставке поменять часть текста
 
доброго дня.
Заполняю видеораздел на сайте видосами - беру ссылки со своего рутуб-канала и размещаю на сайте.

Как можно сделать, чтобы при копировании а затем при вставке в input менялась часть ссылки на ту, которую мне нужно?

Пример.
копирую ссылку: https://rutube.ru/play/embed/109f044552e03310637e0982e2723e6/

нужно вставить и налету поменять на
https://rutube.ru/video/109f044552e03310637e0982e2723e6/

чтобы не менять руками.
т.е. play/embed заменить на video

возможно ли так сделать?

рони 23.12.2024 18:53

tp-20,
:-?
<input name="" size="80"  oninput="this.value=this.value.replace('play/embed', 'video')">

tp-20 23.12.2024 20:27

рони, спасибо, помогло!
единственное кавычки пришлось заменить на апострофы ` (где буква Ё), только в этом случае заработало

<input oninput="this.value=this.value.replace(`play/embed`, `video`)">


иначе выдавало ошибку unexpected end of input

tp-20 24.12.2024 01:23

рони,
подскажите, как немного усовершенствовать функцию?

как поставить условие, что если в ссылке встречается ?p= (приватное видео на рутубе), то тогда play/embed заменить на video/private

Пример.
есть ссылка
https://rutube.ru/play/embed/127474ebda9554b81cd98d5802ddbb3/?p=Xd6iRI-CVWhvol4RXv7u

при копипасте она меняется на
https://rutube.ru/video/private/127474ebda9554b81cd98d5802ddbb3/?p=Xd6iRI-CVWhvol4RXv7u


Сейчас функция выглядит так:

var rutube_replace = document.getElementById("gallery_video" + image_row);
    rutube_replace.oninput = function() {
      this.value = this.value.replace('play/embed', 'video');
      this.value = this.value.replace('shorts', 'video');
    };


<input type="text" id="gallery_video' + image_row + '" />

рони 24.12.2024 02:14

tp-20,
var rutube_replace = document.getElementById("gallery_video" + image_row);
    rutube_replace.oninput = function() {
      let txt = 'video';
      if(this.value.includes('?p=')) txt = 'video/private';
      this.value = this.value.replace('play/embed', txt);
      this.value = this.value.replace('shorts', 'video');
    };

tp-20 14.02.2025 20:16

Добрый день. в продолжение темы...
подскажите, как заменить расширение у картинок?
нужно заменить jpg на png.

этот код не помог:
<img src="<?php echo $cat['image']; ?>" oninput="this.value=this.value.replace(`jpg`, `png`)" />


===========
UPD
решение нашёл :)
$(document).ready(function(){
  $('img').each(function(){
    var src = $(this).attr('src');
    $(this).attr('src', src.replace('jpg','png'));
  });
});


Часовой пояс GMT +3, время: 04:18.