помогите НЕумехе найти ошибку (ПЛЫЗ)
Функция должна находить "код смайлика :-)" в тексте и заменять на его изображение :)
function replaceEmoticons(text) {
var emoticons = {
' :-) ' : 'smail/smaile.png',
' :-( ' : 'smail/sed.png',
' :-D ' : 'smail/Lauch.png',
' :o ' : 'smail/surprised.png',
' ;( ' : 'smail/crying.png',
' (giggle) ' : 'smail/giggle.png'
}, patterns = [],
metachars = /[[\]{}()*+?.\\|^$\-,&#\s]/g;
for (var i in emoticons) {
if (emoticons.hasOwnProperty(i)){ // избежать метасимволы
patterns.push('('+i.replace(metachars, "\\$&")+')');
}
}
return text.replace(new RegExp(patterns.join('|'),'g'),
function (match) {
return typeof emoticons[match] !== 'undefined' ?
'<img src="'+emoticons[match]+'"/>' :
match;
});
}
replaceEmoticons(' test :-) ');
что я делаю не так??? Большое спасибо-добрые люди! |
fasady,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
<script type="text/javascript">
function replaceEmoticons(text) {
var emoticons = {
' :-) ' : 'smail/smaile.png',
' :-( ' : 'smail/sed.png',
' :-D ' : 'smail/Lauch.png',
' :o ' : 'smail/surprised.png',
' ;( ' : 'smail/crying.png',
' (giggle) ' : 'smail/giggle.png'
},metachars = /([[\]{}()*+?.\\|^$\-,&#\s])/g;
for (var i in emoticons) {
var reg = new RegExp(i.replace(metachars, '\\$1') , 'g');
text = text.replace(reg, ' <img src="'+emoticons[i]+'"/> ')
}
return text
}
</script>
<div id="box1">
<p><script type="text/javascript">alert(replaceEmoticons(' test :-) ')); </script></p>
</div>
|
Большое спасибо!!!!! Хорошего вам вечера!!!!!
|
| Часовой пояс GMT +3, время: 10:18. |