Pages Menu Stijit.com
Twitter
Categories Menu

Строки (string) в javascript — фильтрация и замена символов

Рассмотрим пример задания и его выполнение.

При загрузке страницы показываем пользователю диалоговое окно, куда он может ввести данные.
Если пользователь ничего не ввел или нажал отмену или Esc, показать ему диалоговое окно еще раз. Т.е. показывать до тех пор, пока он что-то не введет. А если введет, тогда показать результат работы программы.
После того, как javascript программа получает введенную пользователем строку, с этой строкой надо сделать следующие действия:

1. Сделать реверс строки в javascript

Пример: abcdefg12345 -> 54321gfedcba

    Какие операции нам для этого понадобятся:

  • prompt — чтобы пользователь мог ввести свой набор символов
  • string.length — для определения количества символов в строке
  • string.charAt(i) — получаем из строки символ, который находится в ней на позиции i
<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
</head>
<body>
<script>
  var setOfChars = prompt("Введите любой набор символов", "abcdefg12345"),
  newSet = "";

  while ((setOfChars == "") || (setOfChars == null)) { //Проверяем является ли строка пустой и нажат ли Esc/Отмена
    setOfChars = prompt("Введите любой набор символов", "abcdefg12345"); //Если да - просим ввести строку снова
  }
  for (var i = setOfChars.length; i >= 0; i--) {
    newSet += setOfChars.charAt(i);
  }
  alert(newSet);
</script>
</body>
</html>

2. Вывести только числа из введенной пользователем строки javascript

Пример: ab5c4de3fg12 -> 54312

Для проверки является ли символ числом (цифрой) нам нужно сделать сравнение: если это число, то оно всегда будет меньше или равно 9, т.к. цифр всего 10: 0,1,2,3,4,5,6,7,8,9

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
</head>
<body>
<script>
  var setOfChars = prompt("Введите любой набор символов", "ab5c4de3fg12"),
  newSet = "";

  while ((setOfChars == "") || (setOfChars == null)) {
    setOfChars = prompt("Введите любой набор символов", "ab5c4de3fg12");
  }
  for (var i = 0; i <= setOfChars.length; i++) {
    if (setOfChars.charAt(i) <= 9) { //Проверка является ли символ числом (цифрой)
      newSet += setOfChars.charAt(i);
    }
  }
  alert(newSet);
</script>
</body>
</html>

3. Вывести четные буквы

Пример: ab574de3fg12 -> dbg

Кроме проверки на символа на число (цифру), здесь нам понадобится еще немного сдвинуть счетчик, чтобы он обрабатывал только четные символы из строки.

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
</head>
<body>
<script>
  var setOfChars = prompt("Введите любой набор символов", "ab574de3fg12"),
  newSet = "";

  while ((setOfChars == "") || (setOfChars == null)) {
    setOfChars = prompt("Введите любой набор символов", "ab574de3fg12");
  }
  for (var i = 1; i <= setOfChars.length; i += 2) {
    if (setOfChars.charAt(i) <= 9) {
      continue; //Если этот символ является цифрой, переходим к следующему символу
    } else { //Если нет - записываем его в нашу новую строку
      newSet += setOfChars.charAt(i);
    }
  }
  alert(newSet);
</script>
</body>
</html>

4. Сделать с помощью javascript замену в строке следующих символов: 0 на о, 1 на i, 6 на b

Пример: abc0d1kf1ifd6 -> abcodikfiifdb

Здесь на понадобится оператор switch case для обработки всех вариантов замены цифр на буквы.

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
</head>
<body>
<script>
  var setOfChars = prompt("Введите любой набор символов", "abc0d1kf1ifd6"),
  newSet = "";

  while ((setOfChars == "") || (setOfChars == null)) {
    setOfChars = prompt("Введите любой набор символов", "abc0d1kf1ifd6");
  }
  for (var i = 0; i <= setOfChars.length; i++) {
    if (setOfChars.charAt(i) <= 9) {
      switch(setOfChars.charAt(i)) {
        case "0":
          newSet += "o";
          break;
        case "1":
          newSet += "i";
          break;
        case "6":
          newSet += "b";
          break;
        default:
          newSet += setOfChars.charAt(i);
      }
    } else {
      newSet += setOfChars.charAt(i);
    }
  }
  alert(newSet);
</script>
</body>
</html>

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *