Чи потрібно екранувати дефіс у регулярному виразі?
Вам потрібно лише екранувати символ тире, якщо він інакше може бути інтерпретований як індикатор діапазону (що може мати місце всередині класу символів).
Якщо вам потрібно включити тире в клас символів, ви можете зробити його першим або останнім символом замість екранування.
Екранування дефіса за допомогою \- це правильний шлях. Я перевірив, що вираз /^[a-zA-Z0-9. \-_]+$/ дозволяє дефіси. Ви також можете використовувати клас \w, щоб скоротити його до /^[\w.
Екранує мінімальний набір символів (\, *, +, ?, |, {, [, (,), ^, $, ., # і пробіл), замінивши їх на їхні вихідні коди. Це вказує механізму регулярних виразів інтерпретувати ці символи буквально, а не як метасимволи.
Ви також можете використовувати регулярний вираз заміни, щоб видалити частину рядка, просто замінивши його ні на що. Наприклад, щоб видалити дефіси, дужки чи інші символи з номера телефону, ви можете використовувати такі символи у своєму регулярному виразі: [- +\(\)\.] .