получается, что нужно удалить из строки всё специальное (цифры, символы, пробелы), и заменять ее только если она не пуста..
а еще строку нужно преобразовать в набор букво-цифр..
в итоге получилось так:
(function(){
var elems = document.querySelectorAll('#rep1, #repx *'), i = elems.length;
while(i--) {
var childs = elems[i].childNodes, j = childs.length;
while(j--) if( childs[j].nodeType === 3 && /\S/.test( childs[j].data ) ){
var str = childs[j].data;
var reg = /\s|\d|\.|%|\[|\]|\(|\)/gi;
var res = str.replace( reg, '' );
if( res.length ){
var img = document.createElement('img');
img.src = 'http://mysite.ru/' + encodeURIComponent( res ) + '.jpeg';
elems[i].replaceChild(img, childs[j]);
}
}
}
}())
и это работает.. но на самом деле, все неправильно
значит, надо так:
1.
тянем с сервера массив переведенных иероглифов и линков на картинки выходит, каждый раз, когда я переведу очередную порцию, пользователь должен обновить скрипт? ааа.. так вот, что такое XSS.. блин..
2. с помощью querySelectorAll и childNodes выбираем что будем менять
3. меняем то, что есть на линки из массива..