Извлеките части строки, используя выражение REGULAR в node.js - PullRequest
0 голосов
/ 23 марта 2020

Я попытался извлечь часть «Единственный URL», а не «Путь», например,

, если URL-адрес https://example.com/news/cricket

, то результат должен быть https://example.com/

, но я не силен в регулярном выражении.

data = "https://example.com/news/cricket";
var name = data.substring(0, data.lastIndexOf("/"));
console.log(name);

это то, что я пробовал, но вывод: -

https://example.com/news

Ожидаемый вывод

https://example.com/

Спасибо за помощь ребята

1 Ответ

0 голосов
/ 24 марта 2020

lastIndexOf() возвращает индекс последнего /, то есть до cricked, а не до news.

indexOf() принимает необязательный начальный индекс, вы можете сначала выполнить поиск для //, а затем искать следующий / после этого.

Вам нужно добавить 2 к индексу //, чтобы пропустить его. И вы должны добавить 1 к индексу /, чтобы включить в результат /.

data = "https://example.com/news/cricket";
var name = data.substring(0, data.indexOf("/", data.indexOf("//")+2)+1);
console.log(name);

Используя регулярное выражение, используйте регулярное выражение, соответствующее первому //, а затем следующему /.

var data = "https://example.com/news/cricket";
var match = data.match(/^.*?\/\/.*?\//);
if (match) {
  var name = match[0];
  console.log(name);
}
...