Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2014, 12:51
Новичок на форуме
Отправить личное сообщение для EvgShaman Посмотреть профиль Найти все сообщения от EvgShaman
 
Регистрация: 13.02.2014
Сообщений: 5

отлавливание русской буквы в строке
Хочу выловить определённую букву, но вот незадача -
вот такой код:
var inp = document.getElementById("input");
var text = inp.value;
for (var i=0; i < text.length; i++)
{
	if (text[i]=='а') alert('!!!')
	else alert(text[i]);
}

первым alert'ом не находит букву, а вторым эту самую букву почему-то выводит. Если так находить например перенос строки '\n' или латинские буквы, то он спокойно вылавливается.
Подскажите, как нужно правильно сравнивать, чтобы выловить русские буквы!
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2014, 12:59
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Зачем цикл?

var inp = document.getElementById("input");
if(~inp.value.indexOf('а')) alert('Буква есть');
else alert('Буквы нет');
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2014, 13:03
Новичок на форуме
Отправить личное сообщение для EvgShaman Посмотреть профиль Найти все сообщения от EvgShaman
 
Регистрация: 13.02.2014
Сообщений: 5

А если мне нужно при нахождении каждой 'а' вызывать функцию? Как найти каждую 'а' ?
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2014, 13:09
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <input id="text" type="text" value="арбуз">
    <input onclick="hasChar('а')" type="button" value="Search">

    <script>
	var text = document.getElementById('text');
      
      function hasChar(char) {
        value = text.value;
        for(var i=0; i<value.length; i++) {
          if(value.charAt(i) === char) {
            alert(true);
          }
        }
      }



    </script>

  </body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2014, 13:11
Новичок на форуме
Отправить личное сообщение для EvgShaman Посмотреть профиль Найти все сообщения от EvgShaman
 
Регистрация: 13.02.2014
Сообщений: 5

Спасибо))
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2014, 13:12
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Так и знал, что danik.js мимо не пройдёт, минусанёт за ~
Вот лол.
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2014, 13:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
~
Да, и даже не поленился найти ссылку:
http://habrahabr.ru/post/205616/
Цитата:
Я просто уверен, что автор был очень горд. Для начала, почему именно так? Разве !~utils.indexOf(...) && действительно достойная замена if (utils.indexOf(...) >= 0)?
Цитата:
Использование ~ для проверки возвращаемого функцией indexOf значения, которое может быть равным -1 при отсутствии элемента, просто неразумно. И пожалуйста, не говорите мне, что «так же быстрее».
Дискуссия в каментах: http://habrahabr.ru/post/205616/#comment_7085638

Сообщение от EvgShaman
А если мне нужно при нахождении каждой 'а' вызывать функцию? Как найти каждую 'а' ?
Всмысле подсчитать количество 'а'? Или узнать их индексы?

Поиск всех буковок:
var string = "абвабв";
var index = string.indexOf('а');
while (index > -1) {
    alert('нашли букву на позиции ' + index);
    index = string.indexOf('а', index + 1);
}


Подсчет, через регулярку:
var string = "абвабв";
var matches = string.match(/а/g);
var count = matches ? matches.length : 0;
alert(count);
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2014, 13:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 15.02.2014, 14:05
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

var string = "вабвабв";
  var col = --string.split("а").length;
  alert(col);

Ответить с цитированием
  #10 (permalink)  
Старый 15.02.2014, 15:09
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, я специально так пишу, чтобы ты мимо не проходил, неужели ты не понял?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка надёжности пароля dane Общие вопросы Javascript 1 18.11.2013 16:11
Поиск в строке другой подстроки средствами JS YAN Общие вопросы Javascript 13 23.07.2013 09:41
Как определить какого типа данные в строке den9000 Общие вопросы Javascript 7 07.12.2010 10:57
event.keyCode в русской раскладке клавиатуры (ff&opera) dio Events/DOM/Window 0 14.08.2010 12:45
русские буквы в графиках js charts Melichron Элементы интерфейса 22 11.09.2009 18:41