Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   проблема с регулярным выражением (https://javascript.ru/forum/jquery/58762-problema-s-regulyarnym-vyrazheniem.html)

BorisBritva 09.10.2015 06:47

проблема с регулярным выражением
 
есть регулярка
/https?:\/\/(rutube)\.ru\/video\/+([0-9a-f]{32})+(\b.\S?)/gmi


и ссылка - http://rutube.ru/video/684a42ab08bd4...180/?bmstart=6

при замене через replace оставляет хвост - bmstart=6

как исправить чтобы хвост тоже удалялся но до пробела с учетом что его в тексте может и не быть.

Благодарю.

ksa 09.10.2015 08:18

Цитата:

Сообщение от BorisBritva (Сообщение 391333)
как исправить чтобы хвост тоже удалялся но до пробела с учетом что его в тексте может и не быть.

Что тебе вообще нужно делать с теми УРЛами? Потому как проще бывает сделать новую регулярку, когда известна вся задача.
Либо просто у ссылок сразу отрезай параметры, а потом обрабатывай их своей регуляркой.

BorisBritva 09.10.2015 08:56

Ну допустим вводит юзер текст и за одно ссылку на видос, либо скопировал где нибуди текст с сылкой. Cсылку надо заменить на iframe, при этом кроме ссылки может быть еще и текст который не надо трогать.

/https?:\/\/(rutube)\.ru\/video\/+([0-9a-f]{32})+\/[^\s]*[\s]/gi с такой регуляркой удаляется первое слово после ссылки.

ksa 09.10.2015 13:21

Цитата:

Сообщение от BorisBritva
юзер текст и за одно ссылку на видос, либо скопировал где нибуди текст с сылкой. Cсылку надо заменить на iframe, при этом кроме ссылки может быть еще и текст который не надо трогать

Как вариант...
<script>
var str='и ссылка - http://rutube.ru/video/684a42ab08bd443f3c25d05748a33180/?bmstart=6 при замене через replace оставляет хвост';
alert(str.replace(/(https?:\/\/[^\s]+)/gim,'[iframe]$1[/iframe]'));
</script>

P.S.
BBkod сам вставляется... :(

рони 09.10.2015 14:00

ksa,
:-?
<script>
var str='и ссылка - http://rutube.ru/video/684a42ab08bd443f3c25d05748a33180/?bmstart=6 при замене через replace оставляет хвост';
alert(str.replace(/(https?:\/\/[^\s]+\/)[^\s]*/gim,'[iframe]$1[/iframe] '));
</script>

ksa 09.10.2015 14:06

рони, да, при использовании
<script>
</script>

ББкод не в ставляется. :yes:

рони 09.10.2015 14:09

ksa,
bmstart=6
это вроде ненужно тс

ksa 09.10.2015 14:22

Цитата:

Сообщение от рони
bmstart=6
это вроде ненужно тс

Вроде как все из-за этого и затевалось... :)
Цитата:

Сообщение от BorisBritva
при замене через replace оставляет хвост - bmstart=6

как исправить чтобы хвост тоже удалялся


ksa 09.10.2015 14:24

рони, в любом случае ТСу есть из чего выбирать... ;)

BorisBritva 09.10.2015 20:54

Не работает. Первое слово после ссылки все равно удаляется!


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