HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 28.03.2009, 11:27
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Дикс  
чет я не понимаю..
charsArray - это объект.
как получить его длину?
Его длина тут не нужна.
Цитата:
Сообщение от Дикс  
и как проверить наличие в нём текущей буквы?
Код:
(character in charsArray)
Код:
(charsArray[character])
 

  #12  
Старый 28.03.2009, 11:27
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

var x = new Array();
x[0] = "Строка";
x[1] = "Еще строка";
var l = x.length; // l равно 2

по поводу поиска без перебора здесь:

http://habrahabr.ru/blogs/javascript/46787/
 

  #13  
Старый 28.03.2009, 14:58
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

PHP код:
function translit(id) {

    var 
charsArray = {
        
'а':'a',
        
'б':'b',
        
'в':'v',
        
'г':'g',
        
'д':'d',
        
'е':'e',
        
'ё':'jo',
        
'ж':'zh',
        
'з':'z',
        
'и':'i',
        
'й':'j',
        
'к':'k',
        
'л':'l',
        
'м':'m',
        
'н':'n',
        
'о':'o',
        
'п':'p',
        
'р':'r',
        
'с':'s',
        
'т':'t',
        
'у':'u',
        
'ф':'f',
        
'х':'h',
        
'ч':'ch',
        
'ц':'c',
        
'ш':'sh',
        
'щ':'csh',
        
'э':'e',
        
'ю':'ju',
        
'\я':'ja',
        
'ы':'y',
        
'ъ':'',
        
'ь':'\'',
        
' ':'_',
        
'\'':'',
        
'\"':'',
        
'\#':'',
        
'\$':'',
        
'\%':'',
        
'\&':'',
        
'\*':'',
        
'\,':'',
        
'\:':'',
        
'\;':'',
        
'\<':'',
        
'\>':'',
        
'\?':'',
        
'\[':'',
        
'\]':'',
        
'\^':'',
        
'\{':'',
        
'\}':'',
        
'\|':'',
        
'\!':'',
        
'\@':'',
        
'\(':'',
        
'\)':'',
        
'\-':'_',
        
'\=':'',
        
'\+':'',
        
'\/':'',
        
'\\':''
    
};
    var 
character;
    var 
field document.getElementById(id);
    var 
from field.value.toLowerCase();
    
field.value '';

    for(var 
061i++)
    {
        
character from.charAt(i);
           
field.value += (character in charsArray)? charsArray[character] : character;
    }

Вот. здесь можно чета улучшить ещё?
 

  #14  
Старый 30.03.2009, 19:41
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Дикс  
Вот. здесь можно чета улучшить ещё?
Конечно.


Код:
for(var i = 0; i < 61; i++)
Обрабатываются только первые 62 знака исходного текста. Всё, что после - нет.


Код:
'\'': '',  '\"': '',  '\#': '',  '\$': '',
'\%': '',  '\&': '',  '\*': '',  '\,': '',
'\:': '',  '\;': '',  '\<': '',  '\>': '',
'\?': '',  '\[': '',  '\]': '',  '\^': '',
'\{': '',  '\}': '',  '\|': '',  '\!': '',
'\@': '',  '\(': '',  '\)': '',  '\-': '_',
'\=': '',  '\+': '',  '\/': '',  '\\': ''
Экранирующий слэш нужен только в первом и последнем случаях. Зачем вообще удалять все эти символы - неясно.


Код:
var character;
var field = document.getElementById(id);
var from = field.value.toLowerCase();
field.value = '';
Лучше бы функции транслитерации только этим и заниматься, ей передали текст (и таблицу замен - опционально) - она вернула текст, не очищая там попутно левые поля, не заполняя их ничем, но это так, к слову.


Код:
character = from.charAt(i);
Пусть


Код:
field.value += (character in charsArray) ? charsArray[character] : character;
Можно было обойтись без этой проверки, немного развернув логику - проходить не по строке, а по самой таблице замен. (for..in)
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школьник меня хотел сделать гарантом :-) dinar_007 Болталка 50 18.01.2009 19:07
Что можно сделать в форуме Ipb 2.0.3. Имея пароль администратора? MDD Сценарии/CMF/СMS 5 09.06.2005 11:59



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ