@Genri_Rus

Как разрешить добавлять только дефисы или нижнее подчеркивание?

В данном примере происходит замена только на дефис, а как можно сделать и при вводе нижнего подчеркивания?
Т.е. нужно сделать замену пробелов или других спецсимволов на дефис или нижнее подчёркивание.
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
XanXanXan
@XanXanXan
const input = document.querySelector('.word');

const divider = '-';
const secondDivider = '_';

const dividerRules = [
    { pattern: `[a-z0-9_-]`, replacement: divider },
    { pattern: `[\\${divider}\\${secondDivider}]+`, replacement: (match) => match[0] },
    { pattern: `^[\\${divider}\\${secondDivider}]+|[\\${divider}\\${secondDivider}]+$`, replacement: '' },
]

const valueReplacer = (input, rules) => {
    rules.forEach(({ pattern, replacement }) => input.value = input.value.replace(new RegExp(pattern, 'gi'), replacement));
}

input.addEventListener('change', ({ target }) => {
    valueReplacer(target, dividerRules);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы