Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2011, 10:48
Аспирант
Отправить личное сообщение для hacker_007 Посмотреть профиль Найти все сообщения от hacker_007
 
Регистрация: 10.01.2011
Сообщений: 52

Нужна помощь!!!!!
Написал скрипт переводчика(ради прикола).....
<script language="JavaScript" type="text/javascript">
function fof()
{
var rule = {
'a':'A',
'б':'B'
}
var other1 = document.getElementById('slova').value;
if (other1.length == 0){
  document.getElementById('result').value = "Поле пустое! Введите слово или текст.";
}
else{
var other2 = other1.toLowerCase();
document.getElementById('result').value = other2.replace( /[А-яЁё]/g , function(a){ return rule[a]||a } );
}
}
</script>
<form>
<BR />Ваш текст, слово:<BR />
<textarea id="slova" value="" rows="5" cols="50"></textarea>
<BR />Результат:<BR />
<textarea id="result" value="" rows="5" cols="50"></textarea>
<BR /><p><input type="submit" OnClick="fof();return false" value="Перевести" /></p>
</form>

Скрипт рабочий..
Но появилась надобность заменять две или более букв одной.... он это не делает:
<script language="JavaScript" type="text/javascript">
function fof()
{
var rule = {
'ка':'а',
'зу':'б'
}
var other1 = document.getElementById('slova').value;
if (other1.length == 0){
  document.getElementById('result').value = "Поле пустое! Введите слово или текст.";
}
else{
var other2 = other1.toLowerCase();
document.getElementById('result').value = other2.replace( /[А-яЁё]/g , function(a){ return rule[a]||a } );
}
}
</script>
<form>
<BR />Ваш текст, слово:<BR />
<textarea id="slova" value="" rows="5" cols="50"></textarea>
<BR />Результат:<BR />
<textarea id="result" value="" rows="5" cols="50"></textarea>
<BR /><p><input type="submit" OnClick="fof();return false" value="Перевести" /></p>
</form>

Вот так.... Он уже не работает...

Последний раз редактировалось hacker_007, 06.03.2011 в 10:58.
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2011, 12:31
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

.replace(/../g, function(a){return rule2[a]||a}).replace(/./g, function(a){return rule1[a]||a})

В общем применять словарь для пар, потом для всех остальных.
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2011, 13:01
Аспирант
Отправить личное сообщение для hacker_007 Посмотреть профиль Найти все сообщения от hacker_007
 
Регистрация: 10.01.2011
Сообщений: 52

А как для этого словарь сделать???
Цитата:
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2011, 13:08
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

начать с алгоритма замены.поскольку в заменяемых и в заменяющих используются одни и теже буквы.и учесть это при составлении алгоритма -соответственно и способ решения правильный появится. а не пытатся изменить алгоритм под другую задачу просто операторами.
пути решения у первого и второго разные
Ответить с цитированием
  #5 (permalink)  
Старый 06.03.2011, 14:18
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Ну можно попробовать применить что-нибудь типа http://jscc.jmksf.com/ для таких целей.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь в JavaScript михаил Общие вопросы Javascript 26 30.10.2013 11:07
Нужна помощь, если можно Fox-WNT Общие вопросы Javascript 3 27.07.2010 11:38
Очень нужна помощь с Ext JS dcbal ExtJS 1 09.07.2010 13:15
нужна помощь Sergiy Серверные языки и технологии 2 31.03.2010 20:16
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17