Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перебор символов в строке (https://javascript.ru/forum/misc/43444-perebor-simvolov-v-stroke.html)

oxxy 05.12.2013 13:30

Перебор символов в строке
 
Добрый день!

Есть две формы.

В одной форме вбиваю текст в текстовое поле.
В другой форме этот текст должен выводится, через запятую.

Как я понял решение простое. Строка - массив. То есть
var str='qwe' - это массив из 3 элементов ( str[0]='q') и так далее.

Почему, когда в форму 1 вбиваю текст и нажимаю на кнопку, в форме2 появляется только последний символ. ?

<body>
//форма1
	<form name="txt_in">
		<input type="text" name="txt_rez" value=' '>
		
	</form>

//форма2	
	<form name="txt_out">
	 <textarea rows='5' cols='15' name="area_rez" value=' '>  </textarea>
	<input type="button" value="get text" onclick="txt()">
	</form>
</body>


вот простая функция

<script>
function txt(){

var txtval=document.txt_in.txt_rez.value; //переменной присваивается значение, вбитое в текстовое поле в форме 1
	 
var i;
	 
	 //перебор строки
	for(i=0; i<txtval.length; i++){
		var rez=txtval[i]+', ';
		document.txt_out.area_rez.value=rez;  
	}
}

</script>


Если вбить текст 'qwe' - результат будет ' e, ' ...

ksa 05.12.2013 13:45

Цитата:

Сообщение от oxxy
В одной форме вбиваю текст в текстовое поле.
В другой форме этот текст должен выводится, через запятую.

Как я понял решение простое. Строка - массив.

Отнють не самое простое! :)

var str='Пример строки 1234, еще один пример';
alert(str.replace(/([^,](?!,|$))/g,'$1,'));

Faab 05.12.2013 13:50

document.txt_out.area_rez.value=rez;

значение поля area_rez меняется про каждой итерации... а должно не меняться, а добавляться к предыдущему значению.

oxxy 05.12.2013 13:56

Цитата:

Сообщение от ksa (Сообщение 284714)
Отнють не самое простое! :)

var str='Пример строки 1234, еще один пример';
alert(str.replace(/([^,](?!,|$))/g,'$1,'));

Спасибо! Работает как надо)

С регулярными выражениями еще не работал. То есть простым перебором FOR такого результата со строками нельзя сделать?

oxxy 05.12.2013 14:00

Цитата:

Сообщение от Faab (Сообщение 284718)
document.txt_out.area_rez.value=rez;

значение поля area_rez меняется про каждой итерации... а должно не меняться, а добавляться к предыдущему значению.

Теперь понятно в чем ошибка) Спасибо!

ksa 05.12.2013 14:10

Цитата:

Сообщение от oxxy
простым перебором FOR

Это колхоз... :)


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