Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Массив
 
 автор: SnooPI   (08.07.2007 в 05:34)   письмо автору
 
 

Вообщем надо сделать функцию перекодировки...
Но я не знаю как в джаваскрипте сделать такой массив...
        function utfencoderus(str)
        {  
            u2koi = array
            ( 
            "%u0430" => "а", "%u0410" => "А",
            "%u0431" => "б", "%u0411" => "Б",
            "%u0432" => "в", "%u0412" => "В",
            "%u0433" => "г", "%u0413" => "Г",
            "%u0434" => "д", "%u0414" => "Д",
            "%u0435" => "е", "%u0415" => "Е",
            "%u0451" => "ё", "%u0401" => "Ё",
            "%u0436" => "ж", "%u0416" => "Ж",
            "%u0437" => "з", "%u0417" => "З",
            "%u0438" => "и", "%u0418" => "И",
            "%u0439" => "й", "%u0419" => "Й",
            "%u043A" => "к", "%u041A" => "К",
            "%u043B" => "л", "%u041B" => "Л",
            "%u043C" => "м", "%u041C" => "М",
            "%u043D" => "н", "%u041D" => "Н",
            "%u043E" => "о", "%u041E" => "О",
            "%u043F" => "п", "%u041F" => "П",
            "%u0440" => "р", "%u0420" => "Р",
            "%u0441" => "с", "%u0421" => "С",
            "%u0442" => "т", "%u0422" => "Т",
            "%u0443" => "у", "%u0423" => "У",
            "%u0444" => "ф", "%u0424" => "Ф",
            "%u0445" => "х", "%u0425" => "Х",
            "%u0446" => "ц", "%u0426" => "Ц",
            "%u0447" => "ч", "%u0427" => "Ч",
            "%u0448" => "ш", "%u0428" => "Ш",
            "%u0449" => "щ", "%u0429" => "Щ",
            "%u044A" => "ъ", "%u042A" => "Ъ",
            "%u044B" => "ы", "%u042B" => "Ы",
            "%u044C" => "ь", "%u042C" => "Ь",
            "%u044D" => "э", "%u042D" => "Э",
            "%u044E" => "ю", "%u042E" => "Ю",
            "%u044F" => "я", "%u042F" => "Я"
            );
            str=strtr(str,u2koi);
            return str;
        } 


Вообщем вот..
Будет ли работать эта функция?Знаю что с массивом что-то не то...массив напсиан по пхп классу)

   
 
 автор: CNT   (08.07.2007 в 10:41)   письмо автору
 
   для: SnooPI   (08.07.2007 в 05:34)
 

<script>
function utfencoderus (str)
{
var u2koi = 
   {
   "%u0430" : "а", "%u0410" : "А",
   "%u0431" : "б", "%u0411" : "Б",
   ...
   "%u044F" : "я", "%u042F" : "Я"
   }
return u2koi [str];
}
</script>


Только и для PHP, и для JScript 'а эта конструкция неудачна.
Зачем всякий раз при обращении к функции переопределять массив u2koi?
Эффективнее будет один раз определить глобальный массив u2koi и просто обращаться к значениям его элементов по ключам.

   
 
 автор: bronenos   (08.07.2007 в 12:19)   письмо автору
 
   для: CNT   (08.07.2007 в 10:41)
 

вот моя функция но она для транслита
вам подойдет
http://phx.freedomf.net/chat/jscripts/translate.js

   
 
 автор: SnooPI   (08.07.2007 в 13:57)   письмо автору
 
   для: bronenos   (08.07.2007 в 12:19)
 

Я не знаю)
Как использовать эту функцию
<script type="text/javascript">
function cod(str)
{
var u2koi = 
   {
   "%u0430" : "а", "%u0410": "А",
    "%u0431": "б", "%u0411": "Б",
    "%u0432": "в", "%u0412": "В",
    "%u0433": "г", "%u0413": "Г",
    "%u0434": "д", "%u0414": "Д",
    "%u0435": "е", "%u0415": "Е",
    "%u0451": "ё", "%u0401": "Ё",
    "%u0436": "ж", "%u0416": "Ж",
    "%u0437": "з", "%u0417": "З",
    "%u0438": "и", "%u0418": "И",
    "%u0439": "й", "%u0419": "Й",
    "%u043A": "к", "%u041A": "К",
    "%u043B": "л", "%u041B": "Л",
            "%u043C": "м", "%u041C": "М",
            "%u043D": "н", "%u041D": "Н",
            "%u043E": "о", "%u041E": "О",
            "%u043F": "п", "%u041F": "П",
            "%u0440": "р", "%u0420": "Р",
            "%u0441": "с", "%u0421": "С",
            "%u0442": "т", "%u0422": "Т",
            "%u0443": "у", "%u0423": "У",
            "%u0444": "ф", "%u0424": "Ф",
            "%u0445": "х", "%u0425": "Х",
            "%u0446": "ц", "%u0426": "Ц",
            "%u0447": "ч", "%u0427": "Ч",
            "%u0448": "ш", "%u0428": "Ш",
            "%u0449": "щ", "%u0429": "Щ",
            "%u044A": "ъ", "%u042A": "Ъ",
            "%u044B": "ы", "%u042B": "Ы",
            "%u044C": "ь", "%u042C": "Ь",
            "%u044D": "э", "%u042D": "Э",
            "%u044E": "ю", "%u042E": "Ю",
            "%u044F": "я", "%u042F": "Я"
   }
return u2koi [str];
}
</script>
cod(%u042F%u042F%u042F);

   
 
 автор: CNT   (08.07.2007 в 14:11)   письмо автору
 
   для: SnooPI   (08.07.2007 в 13:57)
 


var a = "%u042F%u042F%u042F".split ('%u');

for (var b = '',  j = 1; j < a.length; j++) b += cod ('%u' + a [j]);

alert (b);

   
 
 автор: bronenos   (08.07.2007 в 15:37)   письмо автору
 
   для: CNT   (08.07.2007 в 14:11)
 

я очень сомневаюсь что это будет работать так как надо...
сообщите о результатах

   
 
 автор: SnooPI   (08.07.2007 в 17:26)   письмо автору
 
   для: bronenos   (08.07.2007 в 15:37)
 

Что-то вы наумдрили..
Функция ведь готова...Я всего-лишь попросил как её вывести...
<script type="text/javascript">
function cod(str)
{
var u2koi = 
   {
   "%u0430" : "а", "%u0410": "А",
    "%u0431": "б", "%u0411": "Б",
    "%u0432": "в", "%u0412": "В",
    "%u0433": "г", "%u0413": "Г",
    "%u0434": "д", "%u0414": "Д",
    "%u0435": "е", "%u0415": "Е",
    "%u0451": "ё", "%u0401": "Ё",
    "%u0436": "ж", "%u0416": "Ж",
    "%u0437": "з", "%u0417": "З",
    "%u0438": "и", "%u0418": "И",
    "%u0439": "й", "%u0419": "Й",
    "%u043A": "к", "%u041A": "К",
    "%u043B": "л", "%u041B": "Л",
            "%u043C": "м", "%u041C": "М",
            "%u043D": "н", "%u041D": "Н",
            "%u043E": "о", "%u041E": "О",
            "%u043F": "п", "%u041F": "П",
            "%u0440": "р", "%u0420": "Р",
            "%u0441": "с", "%u0421": "С",
            "%u0442": "т", "%u0422": "Т",
            "%u0443": "у", "%u0423": "У",
            "%u0444": "ф", "%u0424": "Ф",
            "%u0445": "х", "%u0425": "Х",
            "%u0446": "ц", "%u0426": "Ц",
            "%u0447": "ч", "%u0427": "Ч",
            "%u0448": "ш", "%u0428": "Ш",
            "%u0449": "щ", "%u0429": "Щ",
            "%u044A": "ъ", "%u042A": "Ъ",
            "%u044B": "ы", "%u042B": "Ы",
            "%u044C": "ь", "%u042C": "Ь",
            "%u044D": "э", "%u042D": "Э",
            "%u044E": "ю", "%u042E": "Ю",
            "%u044F": "я", "%u042F": "Я"
   }
return u2koi [str];
</script>
<script>
var a = "%u042F%u042F%u042F".split ('%u');
for (var b = '',  j = 1; j < a.length; j++) b += cod ('%u' + a [j]);
alert (b);
}
</script>

не рабоатет

   
 
 автор: SnooPI   (08.07.2007 в 17:58)   письмо автору
 
   для: SnooPI   (08.07.2007 в 17:26)
 

<head>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
        <title></title>    
        <script type="text/javascript">
function cod(str)
{
var u2koi = 
   {
   "%u0430" : "а", "%u0410": "А",
    "%u0431": "б", "%u0411": "Б",
    "%u0432": "в", "%u0412": "В",
    "%u0433": "г", "%u0413": "Г",
    "%u0434": "д", "%u0414": "Д",
    "%u0435": "е", "%u0415": "Е",
    "%u0451": "ё", "%u0401": "Ё",
    "%u0436": "ж", "%u0416": "Ж",
    "%u0437": "з", "%u0417": "З",
    "%u0438": "и", "%u0418": "И",
    "%u0439": "й", "%u0419": "Й",
    "%u043A": "к", "%u041A": "К",
    "%u043B": "л", "%u041B": "Л",
            "%u043C": "м", "%u041C": "М",
            "%u043D": "н", "%u041D": "Н",
            "%u043E": "о", "%u041E": "О",
            "%u043F": "п", "%u041F": "П",
            "%u0440": "р", "%u0420": "Р",
            "%u0441": "с", "%u0421": "С",
            "%u0442": "т", "%u0422": "Т",
            "%u0443": "у", "%u0423": "У",
            "%u0444": "ф", "%u0424": "Ф",
            "%u0445": "х", "%u0425": "Х",
            "%u0446": "ц", "%u0426": "Ц",
            "%u0447": "ч", "%u0427": "Ч",
            "%u0448": "ш", "%u0428": "Ш",
            "%u0449": "щ", "%u0429": "Щ",
            "%u044A": "ъ", "%u042A": "Ъ",
            "%u044B": "ы", "%u042B": "Ы",
            "%u044C": "ь", "%u042C": "Ь",
            "%u044D": "э", "%u042D": "Э",
            "%u044E": "ю", "%u042E": "Ю",
            "%u044F": "я", "%u042F": "Я"
   }
return u2koi [str];
}
</script>
    </head>
   
    <body>
    
    <input type="submit" id='lol' value='gg'/>
            <div id='lol'></div>
            <script>var a = "%u042F%u042F%u041F".split ('%u');
for (var b = '',  j = 1; j < a.length; j++) b += cod ('%u' + a [j]);
document.getElementById("lol").value = b;</script>
    </body>
</html>

Вот так вот работает.....
Но мне надо чтобы это все делалось функцией......
Чтобы через функцию cod(); менялось это все.....

   
 
 автор: bronenos   (08.07.2007 в 20:12)   письмо автору
 
   для: SnooPI   (08.07.2007 в 17:58)
 

function cod (str)
{
  var u2koi = { 
   "%u0430" : "а", "%u0410": "А", 
    "%u0431": "б", "%u0411": "Б", 
    "%u0432": "в", "%u0412": "В", 
    "%u0433": "г", "%u0413": "Г", 
    "%u0434": "д", "%u0414": "Д", 
    "%u0435": "е", "%u0415": "Е", 
    "%u0451": "ё", "%u0401": "Ё", 
    "%u0436": "ж", "%u0416": "Ж", 
    "%u0437": "з", "%u0417": "З", 
    "%u0438": "и", "%u0418": "И", 
    "%u0439": "й", "%u0419": "Й", 
    "%u043A": "к", "%u041A": "К", 
    "%u043B": "л", "%u041B": "Л", 
    "%u043C": "м", "%u041C": "М", 
    "%u043D": "н", "%u041D": "Н", 
    "%u043E": "о", "%u041E": "О", 
    "%u043F": "п", "%u041F": "П", 
    "%u0440": "р", "%u0420": "Р", 
    "%u0441": "с", "%u0421": "С", 
    "%u0442": "т", "%u0422": "Т", 
    "%u0443": "у", "%u0423": "У", 
    "%u0444": "ф", "%u0424": "Ф", 
    "%u0445": "х", "%u0425": "Х", 
    "%u0446": "ц", "%u0426": "Ц", 
    "%u0447": "ч", "%u0427": "Ч", 
    "%u0448": "ш", "%u0428": "Ш", 
    "%u0449": "щ", "%u0429": "Щ", 
    "%u044A": "ъ", "%u042A": "Ъ", 
    "%u044B": "ы", "%u042B": "Ы", 
    "%u044C": "ь", "%u042C": "Ь", 
    "%u044D": "э", "%u042D": "Э", 
    "%u044E": "ю", "%u042E": "Ю", 
    "%u044F": "я", "%u042F": "Я" 
  } 

  for (var k in u2koi) eval ("str = str.replace (/" + k + "/g, '" + u2koi[k] + "');");
  return str;
}

   
 
 автор: SnooPI   (09.07.2007 в 05:40)   письмо автору
 
   для: bronenos   (08.07.2007 в 20:12)
 

Спасибо

   
 
 автор: CNT   (09.07.2007 в 07:11)   письмо автору
 
   для: bronenos   (08.07.2007 в 20:12)
 

А eval зачем?
Чтобы медленнее работало? :-)

   
 
 автор: bronenos   (09.07.2007 в 07:35)   письмо автору
 
   для: CNT   (09.07.2007 в 07:11)
 

чтоб ему не пришлось менять каждый ключ массива под вид регулярного выражения

   
 
 автор: CNT   (09.07.2007 в 07:40)   письмо автору
 
   для: bronenos   (09.07.2007 в 07:35)
 

 for (var k in u2koi) str = str.replace (new RegExp (k, "g"), u2koi [k]);

   
 
 автор: bronenos   (09.07.2007 в 09:08)   письмо автору
 
   для: CNT   (09.07.2007 в 07:40)
 

позабыл уже такой способ...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования