Насколько корректно регулярное выражение

Есть регулярное выражение, которое должно пропускать строки только с символами от a-z (в разных регистрах), цифры от 0-9 и символы (, ), .. Порядок может быть разный. Насколько регулярное выражение /[^A-Za-z0-9\- ().]/ соответствует этим требованиям


Ответы (2 шт):

Автор решения: vsemozhebuty

Ваше регулярное выражение имеет противоположный смысл и добавочные условия: оно принимает любые символы кроме перечисленных вами, а также кроме пробела и дефиса. Для ваших условий подходит /[A-Za-z0-9().]/.

→ Ссылка
Автор решения: Wiktor Stribiżew

/[^A-Za-z0-9\- ().]/ представляет собой исключающий (инвертированный, негативный) символьный класс и находит любой символ, отличный от букв латинского алфавита, цифр, дефиса, обычного пробела, круглых скобок и точки в любом месте строки.

Вам нужно "регулярное выражение, которое должно пропускать строки только с символами от a-z (в разных регистрах), цифры от 0-9 и символы (, ), .", то есть

/^[A-Za-z0-9().]+$/
/^[A-Za-z0-9().]*$/

Квантификатор * находит ноль и более символов, + – один и более символов. ^ находит начало строки, а $ – конец строки.

См. пример использования регулярного выражения.

→ Ссылка