Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2017, 05:14
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Регулярное выражение + вставить изображения
Здравствуйте! Подскажите регулярку.
Из url: http://....../#page=reviews?id=2?&section=1?&status=5 и т.д.
Нужно получить id,section,status все после знака равно до вопросительного если имеется.
Было бы здорово функцию, для каждой переменой присваивать значение, к примеру:
var id = function('id');
var section= function('section');
var status= function('status');

И ещё такой вопрос. Есть редактируемый div, по клику вставляются в него смайлы, но почему то фокус всегда сбрасывается в самое начало.
function smile_add(src){	
$('.block').html($('block').html() + '<img class="smile" src="'+src+'"/>'); 
$('.block').focus();
}

Благодарю за помощь!

Последний раз редактировалось shyxeroks, 29.03.2017 в 07:04.
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2017, 08:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от shyxeroks
Было бы здорово функцию, для каждой переменой
Как вариант...
var url='http://....../#page=reviews?id=2?&section=1?&status=5 ';
alert(getPrm('id',url))
alert(getPrm('section',url))
alert(getPrm('status',url))
function getPrm(Name,Url){
	var reg=new RegExp(Name+'=[^?&]*');
	return Url.match(reg).toString().split('=')[1];
};

Но это если переменные не повторяются...

Последний раз редактировалось ksa, 29.03.2017 в 08:40.
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2017, 08:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от shyxeroks
но почему то фокус всегда сбрасывается в самое начало
Именно так и работает
Сообщение от shyxeroks
$('.block').focus();
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2017, 08:51
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

ksa, благодарю, переменные всегда разные. Погуглил понял, что с div contenteditable не все так просто со вставкой. К примеру:
Текст текст [тут каретка], если данным кодом вставляем смайл, то получается так: Текст текст [тут каретка] смайл. А хотелось бы, что бы каретка перемещалась и вставала после смайла.
<div contenteditable="true" onFocus="contenteditable_placeholder('text_edit');" onblur="contenteditable_placeholder('text_edit');" class="text_edit">Введите текст...</div>

function smile_add(src){	
$('.text_edit').html($('.text_edit').html() + '<img class="smile" src="'+src+'"/>'); 
$('.text_edit').focus();
}

Последний раз редактировалось shyxeroks, 29.03.2017 в 08:55.
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2017, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от shyxeroks
с div contenteditable не все так просто со вставкой
Что есть - то есть.
Но у нас есть варианты...
Как переместить курсор внутри тегов?
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2017, 08:55
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

по вставкам и кареткам
https://learn.javascript.ru/range-textrange-selection
Ответить с цитированием
  #7 (permalink)  
Старый 29.03.2017, 08:58
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

ksa, там речь о textarea вроде как, не?)
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2017, 09:08
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

ksa,
var id = getPrm('id');
function getPrm(Name){
    var url = window.location.href;
    var reg = new RegExp(Name+'=[^?&]*');
    return url.match(reg).toString().split('=')[1];
}

Если в url нет get, то ошибка и загрузка останавливается, ругается на:
Cannot read property 'toString' of null. Если в урл нет переменных, возможно, что бы возвращало пусто значение?
Ответить с цитированием
  #9 (permalink)  
Старый 29.03.2017, 09:19
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

function getPrm(Name, url){
    url = url || window.location.href;
    var m = RegExp(Name + '=([^?&#]*)').exec(url);
    return m ? m[1] : '';
}
Ответить с цитированием
  #10 (permalink)  
Старый 29.03.2017, 09:28
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Alexandroppolus, благодарю. С contenteditable не совсем понятно. Возможно ли смайл вставлять в то место, где находится каретка?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение tata4ka Общие вопросы Javascript 4 15.11.2014 00:56
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29