Как обрезать ссылку js
Перейти к содержимому

Как обрезать ссылку js

  • автор:

Обрезать URL

Необходимо оставить все, кроме qwerty. Там будет текст из переменной. К сожалению в регулярках мало чего понимаю.

На данный момент вот что имею:

1 2 3 4 5
var url = 'https://twitter.com/intent/tweet?text=qwerty' tw = 'text' // будем подставлять этот текст url = url.replace(/^(https?:\/\/([^/]+\/)).*/, '$1' + tw); console.log(url);

Заранее спасибо
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как получить часть url return url
как получить часть url return url Привет всем! Вопрос от человека далекого от javaScript. у меня.

Обрезать по пробелу
Допустим есть строка. var str = "Привет, Вы можете написать мне по адресам: http://adress1.com, ";.

Обрезать строку
есть url вида http://?.site.ru/? ? — возможен любой символ, и любое количество так вот.

обрезать текст
Как обрезать текст спомощью JS к примеру до 30 символов но когда на него навести курсор чтобы он .

Как на javascript обрезать ссылку?

В profilePhoto попадает такая запись https://vk.com/photo11792890_264692886 Как мне обрезать эту часть https://vk.com/ Пробовал делать replace но ничего у меня не получается, ребята, помогите найти решение.

Отслеживать
задан 17 ноя 2016 в 21:09
1,053 7 7 золотых знаков 18 18 серебряных знаков 38 38 бронзовых знаков

В profilePhoto не может попадать такая «запись». «Пробовал делать replace но . » — покажите, как пробовали.

– user176262
17 ноя 2016 в 21:14

Пробую сделать так profilePhoto = window.content.document.getElementById(‘profile_photo_link’); profilePhoto = profilePhoto.substr(15, profilePhoto.length); alert(profilePhoto); Но так и нечего не получается, но если поместить в переменную обичный текст то режет

17 ноя 2016 в 21:17

profilePhoto — это не строка, а DOM элемент. profilePhoto = profilePhoto.src.substr(15, profilePhoto.length); alert(profilePhoto);

Обрезать ссылку, что бы остался только домен

Доброго времени суток. Регулярные выражения — это просто высшая математика, буду рад помощи.

Задача: обрезать любую ссылку так, что бы оставалось имя домена

Ссылки могут быть вида:

Нужно сделать так, что бы оставалось site.ru

нужно получить значение между » http:// ; https:// ; http://www. ; https://www. « и первым символом « / «

Tempo
AutoIT Гуру

Сообщения 616 Репутация 205

#include example() Func example() Local $aUrls[] = ['http://site.ru/post/date/date/', _ 'https://www.site.ru/post/date/date/', _ 'https://site.ru/post/date/date/', _ 'http://www.site.ru'] _ArrayDisplay($aUrls, 'Before') For $i = 0 To UBound($aUrls) - 1 $aUrls[$i] = StringRegExpReplace($aUrls[$i], '(?im)https?://(?:www\.)?(.+?)(?:/.*|$)', '\1') Next _ArrayDisplay($aUrls, 'After') EndFunc ;==>example

Последнее редактирование: 10 Янв 2021

Soderling
Новичок

Сообщения 29 Репутация 0

Отлично работает! Но столкнулся с новой проблемой.
Почему так происходит и как исправить?

; Если получаю ссылку из строки браузера - не обрезается $oElement_url = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Адресная строка и строка поиска") $URL = _UIA_ElementGetPropertyValue($oElement_url, "ValueValue") $URL = StringRegExpReplace($URL, '(?im)https?://(?:www\.)?(.+?)(?:/.*|$)', '\1') msgbox(64,'Сообщение', $URL) ; Если эту ссылку засунуть в переменную руками - работает $URL = "http://autoit-script.ru/threads/obrezat-ssylku-chto-by-ostalsja-tolko-domen.28082/#post-154387" $URL = StringRegExpReplace($URL, '(?im)https?://(?:www\.)?(.+?)(?:/.*|$)', '\1') msgbox(64,'Сообщение', $URL)
Tempo
AutoIT Гуру

Сообщения 616 Репутация 205
Из адресной строки вы в большинстве случаев получите ссылку без протокола
site.ru/post/date/date/

#include example() Func example() Local $aUrls[] = ['http://site.ru/post/date/date/', _ 'https://www.site.ru/post/date/date/', _ 'https://site.ru/post/date/date/', _ 'http://www.site.ru', _ 'www.site.ru/date/date/', _ 'site.ru/date/date/'] _ArrayDisplay($aUrls, 'Before') For $i = 0 To UBound($aUrls) - 1 $aUrls[$i] = StringRegExpReplace($aUrls[$i], '(?im)(. +?://)?(?:www\.)?([^/]*).*', '\1') Next _ArrayDisplay($aUrls, 'After') EndFunc ;==>example

Последнее редактирование: 10 Янв 2021

Soderling
Новичок

Сообщения 29 Репутация 0
Tempo благодарю!) то что нужно

CreatoR
Must AutoIt!

Команда форума
Администратор
Сообщения 8,670 Репутация 2,479
Задача: обрезать любую ссылку так, что бы оставалось имя домена

Тут нужно уточнять, т.к доменное имя по сути может состоять из нескольких уровней, поэтому и my.site.ru тоже будет считаться именем домена.
Но как я понял в данном случае нужно получить имя домена 2-ого уровня ( site.ru ).
Также нужно учитывать что ссылка может содержать разные протоколы, поэтому любая ссылка может выглядеть и как ftp://site.ru (что в принципе учтено в последнем примере).

#include example() Func example() Local $aUrls[] = _ [ _ 'http://site.ru/post/date/date/', _ 'https://www.site.ru/post/date/date/', _ 'https://site.ru/post/date/date/', _ 'http://www.site.ru', _ 'ftp://www.site.ru/date/date/', _ 'ftp://my.site.ru/date/date/', _ 'www.site.ru/date/date/', _ 'site.ru/date/date/' _ ] _ArrayDisplay($aUrls, 'Before') For $i = 0 To UBound($aUrls) - 1 $aUrls[$i] = StringRegExpReplace($aUrls[$i], '(?i)^(. +://)?.*?([^\.]+\.[^/\.]+)(/.*|$)', '\1') ;Или так ;$aUrls[$i] = StringRegExpReplace($aUrls[$i], '(?i)^.*?([^\.:/]*\.[^/\.]*)(?:/.*)?$', '\1') Next _ArrayDisplay($aUrls, 'After') EndFunc ;==>example

Последнее редактирование: 12 Янв 2021

Soderling
Новичок

Сообщения 29 Репутация 0
Честно говоря даже не подумал об этом)))
Сообщение автоматически объединено: 26 Янв 2021

Доброго времени суток! Опять проблема возникла

Задача: Удалить все ссылки из массива, которые содержат доменное имя

К примеру сайт google , ниже скрин, там видно, что не все ссылки удаляются

$hPage = ControlGetHandle("[RegexpTitle: - Google Chrome]", "", "Chrome_RenderWidgetHostHWND1") $oParent = _UIA_GetElementFromHandle($hPage) $oElement_url = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Адресная строка и строка поиска") $URL = _UIA_ElementGetPropertyValue($oElement_url, "ValueValue") $URL = StringRegExpReplace($URL, '(?i)^(. +://)?.*?([^\.]+\.[^/\.]+)(/.*|$)', '\1') Local $All_link[0] $All = _UIA_FindAllElements($oParent, "ControlType", $UIA_HyperlinkControlTypeId) For $i = 1 To $All[0] _Arrayadd($All_link, _UIA_ElementGetPropertyValue($All[$i], "Value.Value")) Next _ArrayDisplay($All_link) While 1 $ind = _ArraySearch($All_link, $URL,0,0,0,1) If $ind <> -1 Then _ArrayDelete($All_link, $ind) Else exitloop EndIf Wend _ArrayDisplay($All_link)

Сообщение автоматически объединено: 27 Янв 2021

Извиняюсь, но проблема оказалась не в регулярке и тему наверно надо куда-нибудь перенести, но все же.

Вобщем решение нашел, думаю кривое, но работает ( кто понимает и его не затруднит, объясните пожалуйста почему стало работать)

$hPage = ControlGetHandle("[RegexpTitle: - Google Chrome]", "", "Chrome_RenderWidgetHostHWND1") ; 1 вариант ------ косяк кроется вот тут ; $hPage = WinWait(" - Google Chrome", "", 3) ; 2 вариант ---- если сделать так то работает. ;Почему первый случай не работает, а второй работает? $oParent = _UIA_GetElementFromHandle($hPage) $oElement_url = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Адресная строка и строка поиска") $URL = _UIA_ElementGetPropertyValue($oElement_url, "ValueValue") $URL = StringRegExpReplace[/URL]($URL, '(?i)^(. +://)?.*?([^\.]+\.[^/\.]+)(/.*|$)', '\1') msgbox (64,'', $url )

Как обрезать строку через js чтобы остались нужная часть?

Нужно как-то обрезать ссылки вида https://www.instagram.com/p/BGrZOf5OTpH/?taken-by=.
Чтобы оставался только идентификатор, в примере это — BGrZOf5OTpH
Подскажите каким образом это можно сделать с помощью jQuery?

  • Вопрос задан более трёх лет назад
  • 2561 просмотр

Комментировать

Решения вопроса 2

var url = 'https://www.instagram.com/p/BGrZOf5OTpH/?taken-by=/. '; var // BGrZOf5OTpH

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

AppFA

Frontend developer at Yandex

'use strict'; const url = 'https://www.instagram.com/p/BGrZOf5OTpH/?taken-by=. '; const // => BGrZOf5OTpH

Ответ написан более трёх лет назад

Да, действительно, split проще, не нужно мудрить с регулярными выражениями. Единственное возможное преимущество моего варианта в том случае, если URL вводится руками и пользователь может опустить префикс «http://».

Ответы на вопрос 0

Ваш ответ на вопрос

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

javascript

  • JavaScript
  • +1 ещё

Выгрузка JS кода в php, но не просто?

  • 1 подписчик
  • 6 часов назад
  • 54 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *