Чи потрібно екранувати дефіс у регулярному виразі?

Вам потрібно лише екранувати символ тире, якщо він інакше може бути інтерпретований як індикатор діапазону (що може мати місце всередині класу символів).

Якщо вам потрібно включити тире в клас символів, ви можете зробити його першим або останнім символом замість екранування.

Екранування дефіса за допомогою \- це правильний шлях. Я перевірив, що вираз /^[a-zA-Z0-9. \-_]+$/ дозволяє дефіси. Ви також можете використовувати клас \w, щоб скоротити його до /^[\w.

Екранує мінімальний набір символів (\, *, +, ?, |, {, [, (,), ^, $, ., # і пробіл), замінивши їх на їхні вихідні коди. Це вказує механізму регулярних виразів інтерпретувати ці символи буквально, а не як метасимволи.

Ви також можете використовувати регулярний вираз заміни, щоб видалити частину рядка, просто замінивши його ні на що. Наприклад, щоб видалити дефіси, дужки чи інші символи з номера телефону, ви можете використовувати такі символи у своєму регулярному виразі: [- +\(\)\.] .