Как перевести короткую PHP-функцию в JavaScript?

Привет всем! У меня есть небольшая PHP-функция, которая преобразует серийный номер (от 2 до 9999) в другое числовое значение. Мне нужно реализовать аналогичную логику на JavaScript. Вот исходный PHP-код:

function convertSerialToNumber($serial) {
  $parts = explode('-', $serial);
  
  if (count($parts) == 2 && is_numeric($parts[0]) && is_numeric($parts[1])) {
    return ($parts[0] << 23) | $parts[1];
  }
  
  return -1;
}

Как лучше всего переписать эту функцию на JavaScript? Буду благодарен за помощь!

Интересная задача! А зачем вообще нужно такое преобразование? Просто любопытно, для какой задачи это применяется. Кстати, в JS битовые операции работают с 32-битными числами, так что результат может отличаться от PHP для больших значений. Может, стоит использовать BigInt для точности? Или достаточно обычных чисел?

В JavaScript похожую функцию можно реализовать так:

function convertSerialToNumber(serial) {
  const parts = serial.split('-');
  
  if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {
    return (parseInt(parts[0]) << 23) | parseInt(parts[1]);
  }
  
  return -1;
}

Основные отличия: используем split вместо explode, проверяем длину массива через length, а is_numeric заменяем на !isNaN. Также нужно явно преобразовать строки в числа через parseInt перед побитовыми операциями.