Метод replace
<textarea id='area1'> 123 </textarea> <input type='button' value='change' onclick='iprov()'> <script> function iprov() { var a = document.getElementById('area1').value var str = a.charAt(0) var b = str.replace(1, 2) document.getElementById('area1').value = b } </script> Подскажите в чем дело? |
Метод .replace не изменяет строку, а возвращает новую.
|
Изменил код,который выше.Сложился такой вопрос:почему когда пишешь
document.getElementById('area1').value= b то все работает а когда так: document.getElementById('area1').value.charAt(0) = b То не работает :? |
Потому что метод .charAt возвращает новую строку.
|
Я вас не понимаю, вы не могли бы более понятнее объяснить, а не короткими фразами?
|
Метод charAt только возвращает но нечего не устанавливает ))
|
а...то есть мы получаем значение, но обратно передать(изменить) его не можем.Тогда какие есть способы чтобы взять и изменить?
|
Использовать другой язык, где это возможно.
|
Вот здесь даже я нечё непонял ))))))))
Причём тут другой язык ? предлагаешь Контент по китайски, или скрипты на бейсике ? ))))))))) |
Цитата:
|
да, я это и имел ввиду
|
Я заменил вот эти две строки
var document.getElementById('area1').value= b на одну document.getElementById('area1').value= ""+b и все отлично работает |
А еще вот так можно исправить
var b = str.replace("1", "2") |
var это я случайно написал,этот скрипт у меня работает, посмотрите посты выше, мне нужно взять одну цифру и изменить ее.
|
Я так смотрю, начался диалог "хакера" и "хакера":)
|
конечно =) Диолог был бы более содержательным если бы вы подсказали хотя бы в какую сторону идти?Или это вообще не возможно,вытащить один символ изменить и передать его обратно?
|
Так вы даже задачу не сформулировали. Символ вы вытащили, изменить можно, почему бы нет, но вы меняете один символ, притом неправильно, в replace надо ставить либо регулярное выражение, либо строку. А обратно возвращаете один измененный символ. Хотите всю исходную строку с измененным символом, тоже ведь несложно, только напишите четко - что же вы хотите.
|
function replaceChar(string, position, newValue){ return string.replace( new RegExp( "(.{" + position + "}).(.+)", "m" ) , "$1" + newValue + "$2" ); }; var test = "aac"; test = replaceChar( test, 1, "b" ); alert( test ); |
хорошо...вот что мне нужно:
из поля 123 взять "1",и изменить ее например на "2". |
Sweet,спасибо большое!
|
Меня тут не было денёк, и я все-таки решил не просто скопировать скрипт, а понять =) И возникло несколько вопросов:
Зачем нужны выделенные символы? new RegExp( "(.{" + position + "}).(.+)", "m" ) , "$1" + newValue + "$2" ) P.S. с регулярными выражениями первый раз сталкиваюсь. |
Так на этом сайте есть справочник и есть учебник. Вот и почитайте. Зачем же персонально вам все переписывать.
|
Я бы не стал обращаться если бы не читал.Но во всей таблицы не нашел зачем и когда нужны эти кавычки, зачем нужно писать по несколько раз точки, и зачем нужна эта буква "m".
Я написал что сталкиваюсь с этим первый раз, и для меня это просто набор символов, т.ч. прошу без критики |
Часовой пояс GMT +3, время: 00:54. |