Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2018, 15:17
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Правильный поиск в тексте
Добрый день, есть код по поиску в тексте:
<div id="text">Васильев И.А.; Попов Ю.М.; Сухарев Е.М.; Кокосов К.З;</div>
<div id="find"></div>
<script type="text/javascript">
 var t = document.getElementById('text').innerHTML;
   if( t.search('Попов') != -1 ){
        document.getElementById('find').innerHTML = "Найдено";
   };
</script>


Проблема в том что он ищет любой похожий набор букв, а нужно чтобы он нашел только совпадения до точки с запятой, например когда он видит t.search('Попов Ю.М') он не возвращал истину, потому что не хватает точки 'Попов Ю.М.'
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2018, 15:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

"search" на "indexOf" замените и научитесь пользоваться знаком препинания "." (точка).
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2018, 15:35
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

<div id="text">Васильев И.А.; Попов Ю.М.; Сухарев Е.М.; Кокосов К.З;</div>
<div>
	<input type="text" id="input">
</div>
<div id="result"></div>
<script>
var index={};
text.innerHTML.split(';').forEach((phrase,i)=>index[phrase.trim()]=i);

input.addEventListener('input',()=>{
	result.innerHTML=(input.value.trim() in index)?'Найдено':'Не найдено';
});
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2018, 15:42
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<div id="text">Васильев И.А.; Попов Ю.М.; Сухарев Е.М.; Кокосов К.З;</div>
<div id="find"></div>

<script type="text/javascript">
 var t = document.getElementById('text').innerHTML.split('; ');
   if( t.some(el=> el=='Попов Ю.М.')){
        document.getElementById('find').innerHTML = "Найдено";
   };
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2018, 15:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Nexus,
если по вводу поиск, то лучше RegEXP.
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2018, 15:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

laimas, как я понял (не сразу, права) автору нужен строгий поиск.
Ответить с цитированием
  #7 (permalink)  
Старый 09.04.2018, 15:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Да фиг его знает, может и так, но он пишет, что если так ввожу, ищет, а иначе нет, значит видимо производить можно не только по полной, но и только по фамилии.
Ответить с цитированием
  #8 (permalink)  
Старый 10.04.2018, 08:49
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Всем спасибо, очень помогли.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск элемента в тексте и его порядковый номер в нем antoshka1509 AJAX и COMET 7 05.11.2014 14:26
Поиск символа "@" в тексте antoshka1509 AJAX и COMET 1 04.11.2014 23:34
Поиск определенного слова в тексте faforty Общие вопросы Javascript 4 24.09.2011 15:41
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Поиск выражения в тексте grusha jQuery 104 17.04.2009 04:12