Требуется регулярное выражение, заменяющее все знаки кроме первого минуса и чисел на ""
const text = "a-a1s2d3f-4g5h-6i-j-7k8l9";
const result = text.replace(/[^-\d]+/g, "");
console.log(result);
Моя регулярка выводит -123-45-6--789 Должно получиться: -123456789 Пробовал разные, не могу подобрать
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Вы можете использовать
const text = "a-1s2d3f-4g5h-6i-j-7k8l9";
const result = text.replace(/^[^\d-]*(-)|\D/g, "$1");
console.log(result);
См. пример использования регулярного выражения.
Подробности
^- начало строки[^\d-]*- ноль и более символов, отличных от цифр и-(-)- Подмаска №1:-($1в шаблоне замены восстанавливает дефис, если он был найден в оригинальной строке)|- или\D- символ, отличный от цифры.