Javascript - Наличие нескольких выражений регулярных выражений для создания URL - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь использовать регулярные выражения для преобразования заголовков, возвращаемых из API, в чистые структуры URL-адресов. Например, мой заголовок "Most Sales for Retail & Consumer" Я пытаюсь преобразовать его в most-sales-for-retail-consumer. Я бы хотел, чтобы мое регулярное выражение удаляло любые специальные символы и слово «новый» из его заголовков.

Например, некоторые заголовки return as "New Record of Sales" Я хотел бы преобразовать это в record-of-sales

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

Вот то, что я попытался сделать для специальных символов:

const title = "Most Sales for Retail & Consumer"

const newTitle = title.replace(/([^a-zA-Z0-9]*|\s*)\s/g, '-').toLowerCase()
console.log(newTitle)

Но когда я хочу добавить новое выражение, чтобы удалить слово «новый», если оно присутствует в заголовке, я не могу успешно, сохраняя предыдущее logi c, чтобы удалить специальные символы

const title ="New record of sales, & consumer"

const newTitle = title.replace(/\band\b/g, "").split(/ +/).join("-").toLowerCase()

console.log(newTitle)

Вот фрагмент моей попытки объединить эти два, используя другой .replace () после первого:

const title = "New Online Record & Sales" 

const newTitle = title.replace(/([^a-zA-Z0-9]*|\s*)\s/g, '-').replace(/\band\b/g, "")toLowerCase()

console.log(newTitle)

Мой ожидаемый результат - удаление специальных символов при возможности удаления слова «новый»

1 Ответ

1 голос
/ 03 августа 2020

Будет проще, если вы сначала строчите строку, а затем примените match:

const title = "New Online Record & Sales" 

const newTitle = title.toLowerCase()
                      .match(/[a-z0-9]+/g)
                      .filter(w => w !== "new")
                      .join("-");

console.log(newTitle)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...