Правильный поиск в тексте
Добрый день, есть код по поиску в тексте:
<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('Попов Ю.М') он не возвращал истину, потому что не хватает точки 'Попов Ю.М.' |
"search" на "indexOf" замените и научитесь пользоваться знаком препинания "." (точка).
|
<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> |
<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> |
Nexus,
если по вводу поиск, то лучше RegEXP. |
laimas, как я понял (не сразу, права) автору нужен строгий поиск.
|
Да фиг его знает, может и так, но он пишет, что если так ввожу, ищет, а иначе нет, значит видимо производить можно не только по полной, но и только по фамилии.
|
Всем спасибо, очень помогли.:thanks:
|
Часовой пояс GMT +3, время: 14:05. |