Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   вопрос про замену символов в строке (https://javascript.ru/forum/dom-window/12297-vopros-pro-zamenu-simvolov-v-stroke.html)

Yellow79 11.10.2010 11:13

вопрос про замену символов в строке
 
Здравствуйте всем! Столкнулся с проблеммой, мне необходимо в строке заменить определённый символ, например 18-ый, как это можно реализовать?
что бы было примерно как
str[18] = "#"

всем заранее спасибо!

Sweet 11.10.2010 11:59

На сайте есть отличный справочник. Найти там решение было бы делом 5 минут. В будущем прикладывай усилия для самостоятельного решения проблем.
По теме:
var string = 'test',
result = string.replace(string.charAt(1), 'o');
alert(result)
Ссылки по теме:
http://javascript.ru/String/replace
http://javascript.ru/String/charAt

Yellow79 11.10.2010 12:23

Sweet, спасибо огромное, Я бы нашёл сам, но проблемма в том что Я не знал по какому запросу искать, находилось только replace а вот про charAt там не видел, если бы нашёл, то не спрашивал бы.
Спасибо ещё раз огромное

рони 11.10.2010 18:31

Sweet,
Цитата:

Сообщение от Sweet
var string = 'test',

2result = string.replace(string.charAt(1), 'o');

3alert(result)

Ваш код не учитывает что string.charAt(0) может быть равен string.charAt(1) и перезапишеться нулевой символ строки например var string = 'eest',
можно так например ...
String.prototype.repl=function(b,c){var a=this;if(b>-1&&b<a.length){a=a.split('');a[b]=c;a=a.join('')};return a};
alert('test'.repl(1,'o'))

exec 11.10.2010 19:10

Можно и через slice:

String.prototype.replaceChar = function ( num, char ) {
	return this.slice( 0, num - 1 ) + char + this.slice( num );
};

Sweet 11.10.2010 21:03

Признаю, конечно, не лучший способ я предложил. Лучше .slice использовать, как у exec

Yellow79 12.10.2010 10:46

exec, ты просто БОГ JavaScript
на самом деле мне нужно было ещё данное дело пустить в цикле по массиву цифр, с первым случаем, который любезно предоставил Sweet, вчера бился остаток дня, ничего не вышло, а вот сегодня с вашим кодом всё получилось.
Огромное спасибо всем!


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