Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает метод replace() (https://javascript.ru/forum/misc/10376-ne-rabotaet-metod-replace.html)

vamfirius 01.07.2010 14:49

Не работает метод replace()
 
Браузер Mozila 5.0 ОС windows 7. Изучаю javascript буквально неделю, и в качестве пробы пера решил написать скрипт который считает колличество знаков в строке отправленной из формы. Скрипт работает за исключением того что пробелы считает тоже. Помогите разобраться плиз я так понимаю проблема в replace, почему может не срабатывать? Код небольшой поэтому выложу сразу -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="style.css" type="text/css"/>
<script type="text/javascript">
function cnt()
{
var let;
var v_str;
v_reg=/[\s]/g;
v_str=document.all.i_form.i_text.value;
v_str=v_str.toString();
v_str.replace(v_reg,"");
cou=v_str.length;
coun.innerHTML=cou+" знаков в документе";
}
</script>
</head>
<body>
<div id="coun"></div>
<form id="i_form">
<textarea cols="120" rows="20" id="i_text" onmousemove="cnt();" onkeypress="cnt();">
</textarea>
</form>
</body>
</html>

vamfirius 01.07.2010 14:56

Сори. Уже не надо - разобрался.

Octane 01.07.2010 15:07

Раз уж изучаете, скажу замечания по коду:
Цитата:

Сообщение от vamfirius
v_str=document.all.i_form.i_text.value;
…
cou=v_str.length;
coun.innerHTML=cou+…

document.all и обращение к элементам по глобальным переменным, соответствующим именам идентификаторов, лучше не использовать — это не крос-браузерно, будет работать только в Internet Explorer и в Quirks Mode (отсутствие/неправильный DOCTYPE) в других браузерах. Используйте стандартные методы: http://javascript.ru/tutorial/dom/search

Цитата:

Сообщение от vamfirius
<… onmousemove="cnt();" onkeypress="cnt();">

v_str=document.all.i_form.i_text.value;

Искать элемент, на котором сработало событие, не нужно:
<… onmousemove="cnt(this);" onkeypress="cnt(this);">

function cnt(obj) {
    …
    v_str = obj.value;
    …
}


Форматируйте код http://javascript.ru/formatting


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