Уберите контент из URL и создайте строку с помощью Javascript и Regex - PullRequest
0 голосов
/ 09 февраля 2019

Я хотел бы убрать имя элемента из URL, используя Javascript.Не уверен, является ли Regex подходом для этого, так как мне нужно использовать заглавную букву имени элемента после его извлечения.

ДО https://www.sportsdirect.com/karrimor-lifestyle-fleece-mens-443326?colcode=44332603

ПОСЛЕ "Karrimor Lifestyle Fleece Mens 443226"

Так что-нибудь между / после URL и перед?символ и зачистка любого - символы

Ответы [ 3 ]

0 голосов
/ 09 февраля 2019

Это должно работать:

var result = 'https://www.sportsdirect.com/karrimor-lifestyle-fleece-mens-443326?colcode=44332603'
  .replace(/(.*\/|\?.*)/g, '')
  .split(/\W/)
  .map(function(w) {
    return w[0].toUpperCase() + w.substr(1);
  })
  .join(' ');
  
console.log(result);

Чтобы пояснить, что делает фрагмент (строка за строкой):

  1. replace(/(.*\/|\?.*)/g, '') удалить ненужные части URL через RegEx (но оставьте строку пути такой, какая она есть, с дефисами и т..
  2. return w[0].toUpperCase() + w.substr(1); ... чтобы первая "буква" была в верхнем регистре.
  3. .join(' '); ... и снова присоединить элементы к строке, разделенные пробелом.
0 голосов
/ 09 февраля 2019

Вот как я это сделал:

function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}
var input = "https://www.sportsdirect.com/karrimor-lifestyle-fleece-mens-443326?colcode=44332603";
input = input.substring(0, input.indexOf("?"));
input = input.substring(input.lastIndexOf("/") + 1);
input = input.split("-").map(x => capitalizeFirstLetter(x)).join(" ");

capitalizeFirstLetter взято из Как сделать первую букву строки заглавной в JavaScript?

0 голосов
/ 09 февраля 2019

Используйте new URL(url).pathname.substring(1), чтобы получить путь из вашего URL.Затем разбить на -, отобразить на в верхнем регистре только первые символы каждого слова и, наконец, присоединить обратно.Надеюсь, это то, что вы хотите:)

var url = 'https://www.sportsdirect.com/karrimor-lifestyle-fleece-mens-443326?colcode=44332603';
var expected_part = new URL(url).pathname.substring(1); // to ignore 1st character
var expected_result = expected_part.toLowerCase()
  .split('-')
  .map((s) => s.charAt(0).toUpperCase() + s.substring(1))
  .join(' ');
console.log(expected_result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...