Извлечь часть строки из определенной строки в javascript - PullRequest
0 голосов
/ 20 января 2020

У меня есть такая строка

var str = "WebApi served the request: /api/user/v1 in : 249ms with status : OK";

Мне нужно извлечь /api/user/v1 из ул. Как мне сделать это в Javascript?

Я также попытался использовать некоторые регулярные выражения, как показано ниже. Этот метод работает нормально, но есть ли лучший способ сделать это?

var str = "WebApi served the request: /api/user/v1 in : 249ms with status : OK";
var patt1 = /\/.*in/;            //Extract until the word "in"

var result1 = str.match(patt1);

var patt2 = /[^\s]+/;           //Extract the 1st string until it reaches a space

var result2 = result1[0].match(patt2);

console.log(result2);

1 Ответ

1 голос
/ 20 января 2020

Совпадение с sla sh, за которым следуют непробельные символы, пока заглядывание не совпадет с пробелом, за которым следует in:

var str = "WebApi served the request: /api/user/v1 in : 249ms with status : OK";
const match = str.match(/\/\S+(?= in\b)/);
console.log(match[0]);

Чтобы проверить, что строка начинается с WebApi served the request:, добавьте это в начало шаблона и используйте группу захвата вокруг /api части:

var str = "WebApi served the request: /api/user/v1 in : 249ms with status : OK";
const match = str.match(/^WebApi served the request: (\/\S+) in\b/);
if (match) {
  console.log(match[1]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...