Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.10.2010, 11:13
Интересующийся
Отправить личное сообщение для Yellow79 Посмотреть профиль Найти все сообщения от Yellow79
 
Регистрация: 11.05.2010
Сообщений: 14

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

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

Последний раз редактировалось Yellow79, 11.10.2010 в 11:42.
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2010, 11:59
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

На сайте есть отличный справочник. Найти там решение было бы делом 5 минут. В будущем прикладывай усилия для самостоятельного решения проблем.
По теме:
var string = 'test',
result = string.replace(string.charAt(1), 'o');
alert(result)
Ссылки по теме:
http://javascript.ru/String/replace
http://javascript.ru/String/charAt
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2010, 12:23
Интересующийся
Отправить личное сообщение для Yellow79 Посмотреть профиль Найти все сообщения от Yellow79
 
Регистрация: 11.05.2010
Сообщений: 14

Sweet, спасибо огромное, Я бы нашёл сам, но проблемма в том что Я не знал по какому запросу искать, находилось только replace а вот про charAt там не видел, если бы нашёл, то не спрашивал бы.
Спасибо ещё раз огромное
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2010, 18:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

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'))
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2010, 19:10
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

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

String.prototype.replaceChar = function ( num, char ) {
	return this.slice( 0, num - 1 ) + char + this.slice( num );
};
Ответить с цитированием
  #6 (permalink)  
Старый 11.10.2010, 21:03
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Признаю, конечно, не лучший способ я предложил. Лучше .slice использовать, как у exec
Ответить с цитированием
  #7 (permalink)  
Старый 12.10.2010, 10:46
Интересующийся
Отправить личное сообщение для Yellow79 Посмотреть профиль Найти все сообщения от Yellow79
 
Регистрация: 11.05.2010
Сообщений: 14

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
вопрос про <select> Krondor Общие вопросы Javascript 2 25.11.2009 17:04
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27