Javascript.RU

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

Помогите с поиском в масиве
В общем есть код:
var text="Eugene Yevgen Oksai, Olesya, Yevgen";
myName="Yevgen";
hits=[];
for (i=0;i<=text.length;i++){
    if (text[i]==='Y'){
        for(j=i; j< (i+ myName.length);j++){
            hits.push(""+text[j]+"")}}    
        }
if (hits!=0){
        console.log(hits);}
        else console.log("Your name wasn`t found");

который выводит:
["Y", "e", "v", "g", "e", "n", "Y", "e", "v", "g", "e", "n"]
нужно что б выводило:
[Yevgen, Yevgen] or [Yevgen Yevgen] or idialy: Yevgen, Yevgen
У кого нибудь есть идеи, подскажите плз
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2014, 23:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 28,018


var text = "Eugene Yevgen Oksai, Olesya, Yevgen",
      myName = "Yevgen",
      hits = [];
  for (i = 0; i < text.length; i++) {
      if (text[i] === 'Y') {
          var str = '';
          for (j = i; j < (i + myName.length); j++) {
              str += text[j]
          };
          hits.push(str)
      }
  }

  if (hits.length) alert(hits);
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2014, 23:22
Новичок на форуме
Отправить личное сообщение для Eugenee Посмотреть профиль Найти все сообщения от Eugenee
 
Регистрация: 07.10.2014
Сообщений: 5

В принципе просто, но я б сам не догадался, спасибо огромное!
Ответить с цитированием
  #4 (permalink)  
Старый 12.10.2014, 00:05
Аватар для Poznakomlus
Профессор
Отправить личное сообщение для Poznakomlus Посмотреть профиль Найти все сообщения от Poznakomlus
 
Регистрация: 13.03.2013
Сообщений: 1,337

честно не понятно логика ваших действий. Потому как результат можно и так получить
var text = "Eugene Yevgen Oksai, Olesya, Yevgen",
      myName = /Yevgen/g;
      alert(text.match(myName));
Ответить с цитированием
  #5 (permalink)  
Старый 12.10.2014, 04:04
Новичок на форуме
Отправить личное сообщение для Eugenee Посмотреть профиль Найти все сообщения от Eugenee
 
Регистрация: 07.10.2014
Сообщений: 5

Сообщение от Poznakomlus Посмотреть сообщение
честно не понятно логика ваших действий. Потому как результат можно и так получить
var text = "Eugene Yevgen Oksai, Olesya, Yevgen",
      myName = /Yevgen/g;
      alert(text.match(myName));
та логика тут проста, я массивы учу, на codecademy попалась задачка ответа к которой я не знал...
Спасибо, за упрощенный код, у меня следующий вопрос, что это за присвоение такое:
myName = /Yevgen/g;

Или где о нем можно прочитать?
Ответить с цитированием
  #6 (permalink)  
Старый 12.10.2014, 04:32
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Вот так

var legal_names = 'Eugene|Yevgen|Oksa|Olesya|Yevgen';

var reg = new RegExp('^(?:'+legal_names+')$');

var matched = 'Oksa'.match(reg);

console.log(matched); // Array['Oksa']


Disclaimer: не я придумал, я нашел и у себя применяю вместо поиска в массиве литералов. Для тех кто еще юзает массивы:

private static function is_input($name) {
		return preg_match('/^(?:button|checkbox|color|date|datetime|datetime-local|email|file|hidden|image|month|number|password|radio|range|reset|search|submit|tel|text|time|url|week)$/',$name);
	}
Ответить с цитированием
  #7 (permalink)  
Старый 12.10.2014, 18:45
Аватар для Poznakomlus
Профессор
Отправить личное сообщение для Poznakomlus Посмотреть профиль Найти все сообщения от Poznakomlus
 
Регистрация: 13.03.2013
Сообщений: 1,337

Сообщение от Eugenee
я массивы учу,
Сообщение от Eugenee
что это за присвоение такое
http://javascript.ru/String/match
http://javascript.ru/RegExp
Ответить с цитированием
  #8 (permalink)  
Старый 12.10.2014, 19:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

kostyanet, че у тя за функция такая is_input? Ты будешь до конца своих дней поддерживать ее и обновлять список типов по мере их появления?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 13.10.2014, 08:40
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Это у меня еще нет функции is_bool_attr, там на полстраницы атрибутов которые отвечают шаблону "без валуе".

На самом деле не так. Это же не опенсорц, чтобы кто хочет тот писал что угодно. Тут кто хочет тот пишет что можно. Сегодня я добавил туда тип captcha.

ПОтому что инпуты бывают void, а бывают не пустые. ЧТобы унифицировать тип инпута, чтобы равнозначно писать и

->type('text')

и

->type('textarea')

и

->type('select')

пришлось собрать все типы инпутов в кучу (это уже все собрано, не волнуйтесь) и определять реверсом что инпут, а что не пустой.
Ответить с цитированием
  #10 (permalink)  
Старый 13.10.2014, 08:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Кстати, а какого члена ФФ рисует в своем инспекторе элементов инпуты вот так

<input type="text"></input>

Я потратил 10 минут в поисках бага в скрипте, пока допер посмотреть хтмл-сам. Там все было правильно, как w3c.org завещал.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с поиском berto jQuery 0 22.09.2014 11:26
Помогите с jquery поиском по странице Александр141 Элементы интерфейса 4 23.04.2013 20:10
помогите новичку с поиском! real-man AJAX и COMET 8 12.06.2011 13:07
Помогите с поиском m1st_kh Элементы интерфейса 4 01.12.2010 20:18
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 22:50