Find mobile phone contact according to number typed
Here's a few suggestions:

I would model the contacts list as an array of objects, like this:

const contacts = [
  { name: 'kostas', number: '6986100100' },
  { name: 'maria', number: '6986100200' },
  { name: 'george', number: '6986300300' },
  { name: 'sofia', number: '6986300400' },
  { name: 'chris', number: '6987500500' },
  { name: 'marine', number: '6944600600' }
];


If you use your contacts' first name as object keys, you can't have two contacts with the same name. Moreover, if each contact is represented by an object, you can add additional information to the contact in the future. I would also write the phone numbers as a string, not a number, since phone numbers can contain non-digit characters (like '+') or leading zeros.

The search returns a list of corresponding contacts, so you might as well replace the results div with a list, a &lt;ul class="found"&gt;&lt;/ul&gt; for example.

Searching for and displaying the matches becomes easy now:

function handleKeyUp(e) {
  const inputValue = e.target.value.trim();

  if (inputValue) {
    found.innerHTML = contacts
      .filter(contact =&gt; contact.number.startsWith(inputValue))
      .map(
        contact =&gt;
          `&lt;li&gt;&lt;strong&gt;${contact.name}&lt;/strong&gt;: ${contact.number.replace(
            inputValue,
            `&lt;span&gt;${inputValue}&lt;/span&gt;`
          )}&lt;/li&gt;`
      )
      .join('');
  } else {
    found.innerHTML = '';
  }
}


No need to convert the input value to a string, it's a string already. Notice how there's only one call to found.innerHTML. Your code updated the dom once for each found match, but dom operations are expensive and should be minimized.