|
|
|
| Подскажите, кто в курсе -
Есть текст(dr) из цифр и нужно заменить все его символы (zif) на соответсвующие из масива букв(buk).
function kod(sl){
zif= new Array( '94','52','9','36','42','40','97','73','53');
buk=new Array ( 'а', 'б','в','г','д','е','ё','ж','з','и');
ok=sl.replace(buk,zif);
return ok;
}
dr='94 36 97 53 42 "; var ok; ok=kod(dr); alert(ok );
|
Так не работает :( Тогда как? | |
|
|
|
|
|
|
|
для: Владимир22
(20.05.2011 в 20:58)
| | Метод replace() заменяет ЧТО-ТО (которого может быть несколько штук в строке) на что-то другое (которое ТОЛЬКО ОДНО).
Сколько у Вас букв закодировано - столько же раз надо этот метод использовать.
В примере - это 10 букв (от А до И).
Сиречь, нужен цикл из 10 шагов. На каждом шаге цикла создаётся новое регулярное выражение, соответствующее коду zif [j] и эта регулярка меняется на соответствующую букву buk [j] методом replace (). | |
|
|
|
|
|
|
|
для: Абырвалг
(20.05.2011 в 21:24)
| | Странно, а в PHP никаких циклов не требуется:
function translit($st){
$rus=array( 'ж','ц','ч','ш','щ','ь','ю','я');
$eng=array('zh','ts','ch','sh','shch','','yu','ya');
$st=str_replace($rus, $eng, $st);
return $st;}
|
А что такое Сиречь? | |
|
|
|
|
|
|
|
для: Владимир22
(20.05.2011 в 21:32)
| | у php как правило совсем другой функционал и развивается php намного быстрее
и это совсем разные вещи в принципе | |
|
|
|
|
|
|
|
для: Владимир22
(20.05.2011 в 21:32)
| | Ничего странного: в Javascript'e метод replace() работает только для строковых переменных, а в PHP - ещё и для массивов.
В общем, где-то так (кстати - буква И у Вас лишняя, для неё нет числового кода)
function kod (sl)
{
var zif = new Array ('94', '52', '9', '36', '42', '40', '97', '73', '53');
var buk = new Array ( 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з');
sl = ' ' + sl;
for (var j = 0, lj = zif.length; j < lj; j++)
{
var RE = new RegExp (' ' + zif [j] + ' ', 'g');
sl = sl.replace (RE, ' ' + buk [j] + ' ');
}
return sl.substr (1);;
}
dr = '94 36 97 53 42 '; var ok = kod (dr); alert ('|' + ok + '|');
|
И учтите: регулярное выражение - штука "тонкая". Здесь реализовано ТОЛЬКО для случая, что отдельные коды для букв в строке разделены пробелами и в конце строки есть пробел.
Если кодировать будете хотя бы чуть-чуть иначе - регулярку надо переписывать.
PS. http://slovari.yandex.ru/сиречь/значение/ | |
|
|
|
|
|
|
|
для: Абырвалг
(20.05.2011 в 21:42)
| | Абырвалг , спасибо преогромное, проверил - всё заработало. Сам бы долго возился, но до такого бы точно не дошёл, слаб ещё в javaScript. А про сиречь теперь тоже буду знать. Спасиб! | |
|
|
|