С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 06.08.2017
Сообщений: 4

Замена массивов методом replace

06.08.2017, 17:47. Показов 6300. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имею такой скрипт в PHP аналог работает без проблем.решил переписать на JS, и не работает,только осваиваю почему замена не происходит?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<script language="JavaScript">
function createCode(f) {
var reps = ['1', '2', '3', '4']; //Массив 1
var reps2 = ['а', 'б', 'в', 'г']; // массив 2
var str = f.textField.value; // ввод данных
f.codes.value = str.replace(reps, reps2); // Замена первого массива на второй
}
</script>
</head>
<body>
 
<form>
<br>Текст <input type=text size=40 name=textField>
<p><input type=button value="Сформировать код" onClick="createCode(this.form)">
<input type=button value="Очистить" onClick="this.form.reset()">
<p><textarea name=codes cols=40 rows=7>Нет кода. Нажмите на кнопку "Сформировать код" для его создания.</textarea>
</form>
 
</body>
</html>
Как выглядит рабочий вариант на PHP:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$a1 = $_POST['a1']; 
$healthy = array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я");
$yummy   = array("a", "6", "B", "r", "D", "e", "e", "}|{", "3", "u", "u", "k", "JI", "m", "H", "o", "II", "p", "c", "T", "y", "0|0", "x", "u", "4", "III", "III,", "b", "bI", "b", "3", "I-O", "9", "a", "6", "B", "r", "D", "e", "e", "}|{", "3", "u", "k", "JI", "m", "H", "o", "TT", "p", "c", "T", "y", "0|0", "x", "u", "4", "III", "III,", "b", "bI", "b", "3", "I-O", "9");
 
$result2 = str_replace($healthy, $yummy, $a1);
 
// = str_replace($h, $y, $a1);
?>
<center><form action="" method="post" />
 <input type="text" name="a1" placeholder="Введите текст" required size="40" maxlength="55"/><br>
 <br>
 <br>
 <br>
  <?php 
  echo '<input type="text" name="result2" value="'.$result2.'" placeholder="Результат:" required size="40" maxlength="25" onFocus="this.form.submit.disabled=0" disabled/>'; ?><br>
  <br>
  <br>
  <br>
<input type="submit" name="submit" value="Перевести" /> 
</form>
<br></center>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2017, 17:47
Ответы с готовыми решениями:

Replace для массивов
Здравствуйте! Имеется книга с множеством листов, на листах множество данных разноформатных (формулы, числа, тексты и т.п.) Задача...

Замена текста(Replace)
Всем добрый вечер! Задался тут вопросом замены текста. В основном использую для того, что бы при PostBake страницы, текст введенный в...

Замена запятой в дроби на точку (replace)
Помогите, пожалуйста, с кодом. У меня есть numericUpDownModel. Вот мой код: //Model decimal Model =...

1
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
09.08.2017, 20:22
Лучший ответ Сообщение было отмечено Grangy как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
String.prototype.replaceArray = function(find, replace) {
  var replaceString = this;
  var regex; 
  for (var i = 0; i < find.length; i++) {
    regex = new RegExp(find[i], "g");
    replaceString = replaceString.replace(regex, replace[i]);
  }
  return replaceString;
};
 
var reps = ['1', '2', '3', '4']; //Массив 1
var reps2 = ['а', 'б', 'в', 'г']; // массив 2
 
"azxcv 12vvb 43n, 3 1 2 4".replaceArray(reps, reps2); //"azxcv абvvb гвn, в а б г"
https://stackoverflow.com/ques... gs-at-once
google.ru/search?q=javascript+string+replace+array +with+another
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2017, 20:22
Помогаю со студенческими работами здесь

замена функции Replace работая со строкой!
Задание: &quot;заменить строку S1 все вхождения подстроки S2 на подстроку S3 &quot;вручную&quot; (не используя специальных функций поиска и удаления...

Замена символов без использование Replace
только начал изучать string в c# и не въеду никак...нужно зменить в строке все знаки препинания на пробел...но только replace использовать...

Замена символов в массиве через Replace
Не знаю как сделать это через Replace! Задача:Дан массив символов. Преобразовать его, заменив точками все двоеточия (:), встречающиеся...

Замена текста в word через replace
Здравствуйте. Взяла чужую программку и немножко изменила. Она заменяет текст в ворде на текст, который я ввожу в поле edit. Изначально в...

Замена первого совпадения в строке через Replace
Не могу сообразить, как сделать, что бы функция Replace делала замену только для первого найденного совпадения. Есть такой код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru