Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильный поиск в тексте (https://javascript.ru/forum/misc/73359-pravilnyjj-poisk-v-tekste.html)

Artur_Hopf 09.04.2018 15:17

Правильный поиск в тексте
 
Добрый день, есть код по поиску в тексте:
<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('Попов Ю.М') он не возвращал истину, потому что не хватает точки 'Попов Ю.М.'

Nexus 09.04.2018 15:24

"search" на "indexOf" замените и научитесь пользоваться знаком препинания "." (точка).

Nexus 09.04.2018 15:35

<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>

j0hnik 09.04.2018 15:42

<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>

laimas 09.04.2018 15:43

Nexus,
если по вводу поиск, то лучше RegEXP.

Nexus 09.04.2018 15:46

laimas, как я понял (не сразу, права) автору нужен строгий поиск.

laimas 09.04.2018 15:48

Да фиг его знает, может и так, но он пишет, что если так ввожу, ищет, а иначе нет, значит видимо производить можно не только по полной, но и только по фамилии.

Artur_Hopf 10.04.2018 08:49

Всем спасибо, очень помогли.:thanks:


Часовой пояс GMT +3, время: 14:05.