#javascript #node.js #string
Вопрос:
У меня есть hostName
строка, которая может быть или не быть полным доменным именем.
hostName = host1.abc.com OR
hostName = host1
В случае hostName
, если это полное доменное имя, мне нужно захватить только первую часть в host
host = host1
Я написал следующее, но это дает пустую строку ""
, если hostName
это не полное доменное имя
const host = hostName.substring(0, hostName.indexOf('.'));
Ответ №1:
Таким образом, он будет правильно указывать имя хоста в любом из 2 сценариев
const host = hostName.split('.')[0];
Или же
const idx = hostName.indexOf('.');
const host = idx > 0 ? hostName.substring(0, idx) : hostName;
Комментарии:
1. Какой смысл проверять, если разделенный массив больше 1? Это все равно должно сработать, если вы просто сделаете
const host = hostName.split('.')[0]
2. Да, это правда. И спасибо, что упомянули об этом! Я только что это заметил. Тогда ответ будет
const host = hostName.split('.')[0];
таким, и позвольте мне отредактировать мой исходный ответ для ясности 🙂 (Только для другого способа нам нужно будет проверить, больше ли idx 0)