Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь!!!!! (https://javascript.ru/forum/misc/15614-nuzhna-pomoshh.html)

hacker_007 06.03.2011 10:48

Нужна помощь!!!!!
 
Написал скрипт переводчика(ради прикола).....
<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>

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

SV0L0CH 06.03.2011 12:31

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

В общем применять словарь для пар, потом для всех остальных.

hacker_007 06.03.2011 13:01

А как для этого словарь сделать???
Цитата:



dmitriymar 06.03.2011 13:08

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

SV0L0CH 06.03.2011 14:18

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


Часовой пояс GMT +3, время: 09:09.