Помогите с регулярным выражением
Нужно удалить всё что находится между закрывающими тегами </tbody></table>
Я саму регулярку не могу написать, нужно что то типа: .replace(/\<\/tbody\>----тут_всё_удаляем----\<\/table\>/, '</tbody></table>'); Помогите пожалуйста. |
MC-XOBAHCK,
alert("</tbody>12335\n\n</table>".replace(/<\/tbody>[\s\S]*?<\/table>/mig, '</tbody></table>')); |
рони, Спасибо!
|
Помогите с регуляркой. Получаю урл страницы, нужно вытащить из неё домен.
Варианты урла могут быть как https так и http. |
var url = prompt(\'Введите URL\', \'https://javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html\'); if( !url ) { alert(url); throw new Error(); } domain = url.match(/^https?:\/\/([^/]+)/); if( !domain ) { alert(domain); throw new Error(); } console.log(domain); alert( domain[1] ); |
нельзя ли сразу взять нужное?
alert(document.location.host) |
https://developer.mozilla.org/ru/docs/Web/API/URL
var url = 'https://javascript.ru/forum/showthread.php?p=499847&posted=1#post499847'; console.log(new URL(url).hostname); |
Белый шум,
Спасибо! Работает. Правда я не понимаю почему получается массив, но это из за незнания регулярок. j0hnik, в моём случае нельзя. У меня в данном случае расширение для гугл-хрома, оно как фоновая страница отрабатывает. Из API могу вытянуть только полный урл, поэтому нужна регулярка чтоб домен вытащить. |
Кстати, не подскажите, эта страница в учебнике:
https://learn.javascript.ru/regexp-lookahead это планируется тренажёр на русском для регулярок? или я неправильно понял? На английском находил несколько тренажёров, но не разобрался в них. |
|
Цитата:
|
Помогите с регуляркой.
Получаю урл страницы, нужно вытащить из неё протокол http или https. |
Цитата:
|
Цитата:
[https://javascript.ru, javascript.ru] А мне бы теперь получить http или https. Или это делать не через регулярку, а делать проверку на первые пять символов из урла? |
Вот такое решение для определения протокола нормально будет?
let protocol; let url = 'https://javascript.ru/forum'; url.charAt(4) === 's' ? protocol = 'https' : protocol = 'http'; |
MC-XOBAHCK,
var url = prompt(\'Введите URL\', \'https://javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html\'); if( !url ) { alert(url); throw new Error(); } domain = url.match(/(^https?):\/\/([^/]+)/); if( !domain ) { alert(domain); throw new Error(); } console.log(domain); alert( domain ); |
рони,
Круто! Работает. Спасибо за помощь! Я 10 минут не мог найти отличие от той регулярки. Потом только увидел что добавились круглые скобки. Извините за нескромность, а можно ещё в этот массив добавить ещё один элемент который будет путь? То есть получить из урла и эту часть: javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html |
MC-XOBAHCK,
domain = url.match(/(^https?):\/\/(([^/]+).*)/); |
var url = new URL('https://javascript.ru/forum'); alert(url.protocol); alert(url.pathname);в старых браузерах можно просто: var url = document.createElement('a'); url.href = 'https://javascript.ru/forum'; alert(url.protocol); alert(url.pathname); |
по поводу домена и регулярки - между // и ближайшим / могут кроме домена ещё затесаться логин, пароль и порт )
более того, / в конце может не быть, а будет # или ? |
Alexandroppolus,
В данном случае регулярки используются в расширении для гугл-хром. API предоставляет адрес страницы, поэтому под задачи расширения приходится через регулярки вытаскивать разные значения. |
Цитата:
MC-XOBAHCK можно глянуть что это за динозавр? |
Цитата:
|
Часовой пояс GMT +3, время: 22:41. |