Правильный поиск в тексте
Добрый день, есть код по поиску в тексте:
<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, время: 01:24. |