Даже не знаю как это описать...
Smiles=[
{
id:':),:-)',
value:'<img src="~~~">'
},
{
id:':D,:-D,XD,X-D',
value:'<img src="~~~">'
},
{
id:'~,~~,~~~',
value:'<img src="~~~">'
}
];
можно ли написать цикл который будет брать из массива первый объект доставать оттуда значение "id" испоьзовать "," как разделитель и заменять совпадения на "value" затем брать второй объект и проделывать тоже самое и т.д. |
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='...' />
|
Почти тоже самое )))
<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>
|
во втором скрипте работает все только при выводе не цифорок а HTML кода вида
<img src="http://~~~.ru/~~_JS/skypeSmiles/emoticon-0100-smile.gif"> он вставляет только половину Smiles/emoticon-0100-smile.gif"> |
z700i, нужно не брезговать и юзать мой код.
P.S. он был немного нерабочим, поправил. |
Matre, я воспользовался вторым скриптом потому что мне нужно сначала взять теуст из <DIV> по ID потом в этом тексте заменить символьные смайлики на картинки и вернуть на место. второй скрипт как раз работает с вытащенной строкой.
|
| Часовой пояс GMT +3, время: 10:40. |