Regex: как мне не заменить числа? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть функция:

export const formatScenarioName = (name) => (
  name.replace(/[^a-zA-Z ]/g, '').replace(/\s/g, '-').toLowerCase()
)

Я считаю, что это удаляет (белые) пробелы и специальные символы и заменяет пробелы дефисами.Однако это также заменяет цифры.Как мне сделать противоположное этому?Я бы хотел сохранить цифры.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

В одну строку:

const formatScenarioName = name => name.replace(/\W/g, '').replace(/\s/g, '-').toLowerCase()

Пример:

const formatScenarioName = name => name.replace(/\W/g, '').replace(/\s/g, '-').toLowerCase()

var test = 'test0 . 23430v 34'

console.log(formatScenarioName(test))
0 голосов
/ 05 декабря 2018

это должно быть

export const formatScenarioName = (name) => (
    name.replace(/[^a-zA-Z0-9 ]/g, '').replace(/\s/g, '-').toLowerCase()
)

, но вы также можете использовать \w вместо a-zA-Z0-9, в итоге вы получите

/[^\w ]/g

Однако оно включает_ символ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

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