Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена частей текста в текстовом поле (https://javascript.ru/forum/misc/28987-zamena-chastejj-teksta-v-tekstovom-pole.html)

Vetall 09.06.2012 22:29

Замена частей текста в текстовом поле
 
Здравствуйте, помогите пожалуйста найти / сделать скрипт, который будет заменять определённые части строки в input поле ввода, например я ввёл в текстовое поле "plugin.dll" после чего скрипт сразу же заменил .dll на .so чтобы в итоге получилось "plugin.so", буду очень благодарен за помощь :)

lord2kim 09.06.2012 22:38

Цитата:

Сообщение от Vetall (Сообщение 180387)
Здравствуйте, помогите пожалуйста найти / сделать скрипт, который будет заменять определённые части строки в input поле ввода, например я ввёл в текстовое поле "plugin.dll" после чего скрипт сразу же заменил .dll на .so чтобы в итоге получилось "plugin.so", буду очень благодарен за помощь :)

как вариант
function replace_string(txt, cut_str, paste_str) {
	var f=0;
	var ht="";
	ht = ht + txt;
	f=ht.indexOf(cut_str);
	while (f!=-1) {
	//цикл для вырезания всех имеющихся подстрок
		f=ht.indexOf(cut_str);
		if (f>0) { ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length); }
	}
	return ht;
}

где txt - строка, cut_str - что заменять, paste_str - на что заменять...

Deff 09.06.2012 23:03

<script type="text/javascript">
function RepINP(a){
//Что, на что меняем
var Ch = 'plugin.dll',My = 'plugin.so';
 a.value = a.value.replace(Ch,My)
}
</script>
<form>
<input id=InpFrm1 type=text name="plugin" onchange="RepINP(this)" autocomplete="off"/>
</form>

Vetall 09.06.2012 23:05

Deff, извините, но это немного не то, надо заменять только .dll, а не всю строку.

Deff 09.06.2012 23:07

Vetall,
Вроде полный код - ткните Запустить

lord2kim 09.06.2012 23:09

Цитата:

Сообщение от Deff (Сообщение 180405)
Vetall,
Вроде полный код - ткните Запустить

а чем мой не понравилса? :)

Dim@ 09.06.2012 23:10

<script type='text/javascript'>
function replace(zam,zam2){
txt = document.getElementById('text').value;
txt = txt.replace(zam,zam2);
document.getElementById('text').value = txt
}
</script>
<input type='text' id='text' onkeydown='replace(".dll",".so")' onfocus='replace(".dll",".so")'
 onblur='replace(".dll",".so")'>

я бы так сделал zam - это то что заменяется, zam2 - на что заменяется

devote 09.06.2012 23:13

Deff,
твой вариант не будет заменять множественное вхождение текста:
var Ch = 'plugin.dll',My = 'plugin.so';
alert( "tratata plugin.dll, param plugin.dll".replace(Ch,My) );
тогда уж лучше делать так:
var Ch = 'plugin.dll',My = 'plugin.so';
alert( "tratata plugin.dll, param plugin.dll".replace( new RegExp( Ch, "g" ), My) );


Цитата:

Сообщение от lord2kim
а чем мой не понравилса?

что-то громоздко как-то.

Цитата:

Сообщение от Dim@
я бы так сделал zam - это то что заменяется, zam2 - на что заменяется

тоже множественное вхождение не сработает.

Dim@ 09.06.2012 23:14

Цитата:

Сообщение от lord2kim (Сообщение 180406)
а чем мой не понравилса? :)

скорее тем что вы не использовали методы рег. выражений :lol:

Dim@ 09.06.2012 23:17

Цитата:

Сообщение от devote (Сообщение 180408)
тоже множественное вхождение не сработает.

=) работает еще как работает


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