Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.04.2011, 17:17
Аватар для z700i
Аспирант
Отправить личное сообщение для z700i Посмотреть профиль Найти все сообщения от z700i
 
Регистрация: 15.10.2010
Сообщений: 77

Даже не знаю как это описать...
Smiles=[
    {
        id:':),:-)',
        value:'<img src="~~~">'
    },
    {
        id:':D,:-D,XD,X-D',
        value:'<img src="~~~">'
    },
    {
        id:'~,~~,~~~',
        value:'<img src="~~~">'
    }
];

можно ли написать цикл который будет брать из массива первый объект доставать оттуда значение "id" испоьзовать "," как разделитель и заменять совпадения на "value" затем брать второй объект и проделывать тоже самое и т.д.
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2011, 18:17
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

function getSmile(smile) {
	for (var i = 0; i < Smiles.length; i++)
		if (new RegExp(Smiles[i].id.replace(/,/g, "|").replace(/([()])/g, "\\$1")).test(smile))
			return Smiles[i].value;
}

getSmile(":)"); // <img src='...' />

Последний раз редактировалось Matre, 11.04.2011 в 19:46.
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2011, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Почти тоже самое )))
<script type="text/javascript">
var Smiles=[
    {
        id:':),:-)',
        value:'111'
    },
    {
        id:':D,:-D,XD,X-D',
        value:'222'
    },
    {
        id:'~,~~,~~~',
        value:'333'
    }
];
var str = " :)  ~   XD   :)";
function getSmile(b) {
    for (var c = Smiles.length, a = 0; a < c; a++)
        var d = Smiles[a].id.replace(/([\$\^\*\(\)\+\[\]\{\}\|\.\/\?\\])/g, "\\$1").split(",").join("|"),
        b = b.replace(RegExp(d, "gim"), Smiles[a].value);
    return b
};
document.write(getSmile(str));
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 11.04.2011, 19:35
Аватар для z700i
Аспирант
Отправить личное сообщение для z700i Посмотреть профиль Найти все сообщения от z700i
 
Регистрация: 15.10.2010
Сообщений: 77

во втором скрипте работает все только при выводе не цифорок а HTML кода вида
<img src="http://~~~.ru/~~_JS/skypeSmiles/emoticon-0100-smile.gif">

он вставляет только половину
Smiles/emoticon-0100-smile.gif">
Ответить с цитированием
  #5 (permalink)  
Старый 11.04.2011, 19:46
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

z700i, нужно не брезговать и юзать мой код.

P.S. он был немного нерабочим, поправил.
Ответить с цитированием
  #6 (permalink)  
Старый 11.04.2011, 22:01
Аватар для z700i
Аспирант
Отправить личное сообщение для z700i Посмотреть профиль Найти все сообщения от z700i
 
Регистрация: 15.10.2010
Сообщений: 77

Matre, я воспользовался вторым скриптом потому что мне нужно сначала взять теуст из <DIV> по ID потом в этом тексте заменить символьные смайлики на картинки и вернуть на место. второй скрипт как раз работает с вытащенной строкой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Как избежать наложения текста(выпадающий список)? AlexMak (X)HTML/CSS 2 22.12.2008 10:52
Как понимать это выражение? Хранитель Света Общие вопросы Javascript 2 22.07.2008 17:03
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07