Есть ли способ сделать JSLint счастливым с помощью этого регулярного выражения? - PullRequest
3 голосов
/ 21 сентября 2010

При запуске моего JavaScript через JSLint я получаю следующие две ошибки из одной и той же строки кода.

Problem at line 398 character 29: Insecure '.'.

if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))

Problem at line 398 character 41: Unescaped '^'.

if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))

Я понимаю, что JSLint может быть "чрезмерно осторожным".Я прочитал комментарии к похожему вопросу: Цель JSLint: опция "disallow insecure in regex" .

Тем не менее, я хотел бы иметь лучшее из всех миров и иметь постоянную работувыражение, которое также не вызывает JSLint жаловаться.

Но я не могу в регулярном выражении.

Можно ли сделать регулярное выражение, которое ищет наличие хотя бы одного специального символа, но неJSLint жаловаться?

1 Ответ

3 голосов
/ 21 сентября 2010

Это класс персонажа; вам не нужен разделитель (например, запятые). Вы можете очистить регулярное выражение, поместив каретку (^) и тире (-) в стратегические позиции, чтобы избежать их экранирования.

/[!@#$%^&*?_~()-]/

Должно работать. Вы также можете использовать класс, не состоящий из слов:

/\W/

Соответствует чему-либо , кроме буквы (a-zA-Z), числа (0-9) или подчеркивания (_).

...