Задача: заменить все символы "A" на "Я" и все ...

 
0
 
JavaScript
ava
BOPOH | 11.12.2003, 23:57
Необходимо заменить все символы "A" на "Я" и все "ы" на "о" в поле <INPUT name=text> и передать данные в поле <TEXTAREA name=code>. По возможности, передача текста должна происходить при нажатии кнопки <INPUT type=button>.
Внизу я написал кодировку, которая у меня имеется (не очень то и много: собственно "тело" и скрипт на передачу информации из <INPUT name=text> в <TEXTAREA name=code>).
Если кто-то очень силен в программировании на Jscript'e: заменить все "пробелы" на заначение "\n" (переход на другую строку).

<HTML><HEAD><TITLE>Замена символов</TITLE>
<script>
function printmytext() {
with (document)
{
code.value = text.value+"\n"+'<!-- Кодировка выдана -->'
}
}
</SCRIPT>
</HEAD>

<BODY>
<FONT face=Arial size=2>Введите текст: </FONT><BR>
<INPUT name=text size=40 value="А узнал чты у меня есть ыгрымная семья..."><BR>
<INPUT onclick=printmytext() type=button value="Загрузить"><BR>
<TEXTAREA name=code cols=40 rows=10>Нажмите на кнопку "Загрузить"
для замены символов в Вашем тексте.</TEXTAREA>
</BODY></HTML>


ПОМОГИТЕ, КТО ЧЕМ МОЖЕТ!!!
Ответы (11)
ava
Nobody | 12.12.2003, 19:30 #
Используй регексы (регулярные выражения).
ava
[xoodo] | 12.12.2003, 20:13 #
t=document.getelementbyname().text;
for(i=0;i<t.length;i++)
{
   if(t.substring(i,1)=="А"){t.substring(i,1)="Я"}
   if(t.substring(i,1)==" "){t.substring(i,1)="\n"}
/*--
и так далее. Пока функция работает - завари себе чайку, пивка налей. Можешь поспать, но не долго. Не самый быстрый вариант...
--*/
}

А вставлять: document.getelementbyname().code.value=t;
ava
BOPOH | 14.12.2003, 03:30 #
to Nobody: Напиши хотя бы пример с описанием! Я бы попробовал разобраться...

to [xoodo]: А можно немного поподробнее. Естественно, в начале задаем var t. Если я вместо getelementbyname() пишу, допустим, detectform, а в теле дописываю <FORM name=detectform>, то в итоге document.getelementbyname().code.value=[object]. И что-такое "length" и "substring"?
ava
Nobody | 14.12.2003, 16:10 #
var str = "Кякой-ты кривый текст, в кытырым няды зяменить чты-ты.";
str = str.replace(new RegExp("ы","g"), "о");
str = str.replace(new RegExp("я","g"), "а");
alert(str);
ava
Nobody | 14.12.2003, 16:41 #
И вообще, читайте документацию!
JScript
ava
BOPOH | 14.12.2003, 19:29 #
to Nobody: Спасибо за кодировку! Я в этом, кхе... в английском ничего не понимаю, ну совсем немного. Лучше сам буду разбираться.
А что такое new RegExp("ы","g"), "о");?:??
ava
[xoodo] | 14.12.2003, 21:29 #
1.
document.getElementByName().code - обращение к элементу, у которого задан атрибут name="code". Если мы зададим name="txt", то обращаться к элементу будем document.getElementByName().txt и.т.п.

2.
document.getElementByName().code.value - значение элемента. Грубо говоря, вернет в виде строки то, что записано в текстареа с именем code. Ошибка у меня была сначала... Именно это значение мы присвоим переменной t, или str, как товарищ рекомендовал:
t=document.getElementByName().code.value;

3.
t.length - длина строки t (см. пункт 2). Длина, напрмер, строки "синхрофазатрон" = 14.
t.substring(a, b) - подстрока, или часть строки t, начиная с элемента a, длиной b элементов. Нумерация элементов начинается с нуля.
ava
BOPOH | 15.12.2003, 02:28 #
to [xoodo]: Спасибо! Популярно объяснил. Но в метод г-на Nobody быстрее... сейчас не до пива, сессия на носу. Но задается такой вопрос: А если мне нужно заменить двойные кавычки (") на "<<", к примеру. Как тут поступить.
И скажите, пожалуйста, как опытные програмисты новечку: Jscript = Javascript или нет!
Когда закончу кодировку, напишу, зачем мне все это нужно! smile
Еще раз спасибо, Bopo?
ava
[xoodo] | 15.12.2003, 18:56 #
Сессия - это да. Не ты один такой...

В любом из двух способов (ничейный действительно короче smile):

if(t.substring(i,1)=="\""){t.substring(i,1)="<<"}"
/*--ИЛИ--*/
t=t.replace(new RegExp("\"","g"), "<<"); //вроде так...

Символ \ - это указание, что следующий за ним символ (в нашем случае ") следует не интерпритировать, а читать как есть.

А, еще.

JScript не равно JavaScript. Первый - это что-то вроде мелкософтовских развлечений очередных, а второй, который мы и обсуждаем - это разработки Нетскейпа изначально.
ava
Nobody | 15.12.2003, 23:21 #
BOPOH
Флаг "g" означает, что замену надо производить по всей строке, а не только первое совпадение.
ava
BOPOH | 16.12.2003, 21:21 #
to NoBody & [xoodo]: Спасибо Вам огромное! Я сначала вообще-то проборал через REPLACE, но ерунда какая-то получалась. Сейчас займусь изменением источника... smile *Сумашедший смех* :hehe
to All: Внимание создателям WAP-сайтов! :baaa Теперь Вы сможете получить дешифровщик, заменив, соответственно симвовы, как было указано в примере. Например: Б == &#x0411; и т.д. Да здравствует всемирная русификация! Конечно, можно было бы воспользоваться "Opera", но это дело сугубо каждого. ;-)
Закрывайте тему!
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  [xoodo]   Nobody   BOPOH
advanced
Отправить