Хорошая практика должна использовать регулярное выражение для контроля ввода?

Чтобы отключить это правило, ваш .eslintrc.js должен иметь:

module.exports = {
    'rules': {
        'import/export': 0
    }
}
5
задан eKek0 18 April 2009 в 22:38
поделиться

9 ответов

Regular expressions are just one way to match text against a pattern. There are other ways to do the same thing without using a regex. You shouldn't think of regular expressions as a buzzword that you must include in your code. Use whatever tool works the best.

For input validation just be sure whatever tools you're using let you specify exactly what kind of text you want to accept and reject everything else by default. Regular expressions let you do this easily and concisely for certain kinds of input, which is why many people use them.

5
ответ дан 18 December 2019 в 09:53
поделиться

Yes!

Regular expressions usually let you build a pretty solid input validation that's fairly readable in a very short space of time.

Something that does the right job, is maintainable and lets you get onto other things is good in my books.

As always, apply common sense and if a regex is a bad tool for the job, don't use it.

4
ответ дан 18 December 2019 в 09:53
поделиться

Использование проверки регулярных выражений - хорошая идея, при условии, что вы не переходите к применению более чем регулярных регулярных выражений:

Если вы обнаружите, что проверяете потенциально сложные структуры, такие как , Майкл Эш делает в своей попытке проверить дату, когда вы находитесь на проторенном пути и что у вас возникли проблемы:

^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

В вашем коде будут проблемы с обслуживанием. 1115104]

4
ответ дан 18 December 2019 в 09:53
поделиться

Я понимаю, что не все проверки могут или должны выполняться с помощью регулярных выражений

Вы совершенно правы в этом один, но для вещей, которые должны быть точно определенным образом (например, номера социального страхования, номера телефонов (в некоторой степени) и электронные письма), использование регулярных выражений может быть полезным.

Но не полагайтесь на них. Например, у меня есть довольно хорошая проверка регулярных выражений по электронной почте, но у меня также есть список явно поддельных доменов (example.com и некоторых других, которые я видел в нашей базе данных (в основном локальные)) для сравнения.

2
ответ дан 18 December 2019 в 09:53
поделиться

Да - регулярные выражения очень хорошо работают для проверки ввода. Тем не менее, часто бывает очень хорошей идеей абстрагировать эти вещи как можно дальше от других методов - или даже иногда специальных объектов валидаторов.

Помните, что регулярные выражения часто могут создавать большие проблемы, но в целом ввод валидация - это случай, когда они совершенно безоговорочно сияют.

1
ответ дан 18 December 2019 в 09:53
поделиться

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

0
ответ дан 18 December 2019 в 09:53
поделиться

Необходимо выполнить проверку как на стороне клиента, так и на стороне сервера. Регулярные выражения очень хороши для того, чтобы убедиться, что строка имеет правильный формат (например, адреса электронной почты, номера телефонов и т. Д.), Но сервер не должен зависеть исключительно от этого. Сервер должен самостоятельно проверять, а также проверять корректность бизнеса (например, как ответ выше, который проверен на поддельные адреса в базе данных).

Одного раза недостаточно. Существуют разные степени «действительности».

0
ответ дан 18 December 2019 в 09:53
поделиться

Ответ на ваш вопрос действительно зависит от цели вашего кода. Да, регулярные выражения великолепны, и я согласен со всеми предыдущими ответами (которые я прочитал).

Использование регулярных выражений - это удобный, быстрый и изящный способ проверки определенных входных данных, но, возможно, вам нужно запомнить, что делает хороший код, и применять регулярные выражения в правильных местах. Я прочитал статью, которую вы опубликовали, и я подумал, что предметом обсуждения было больше о правильном использовании регулярных выражений, то есть не просто используйте их для решения, потому что вы знаете, что это будет быстро набирать, и это будет работать, но в turn создает нечитаемый, длинный и ужасно выглядящий код.

Я бы не берите из того, что написано, что регулярные выражения - «плохая практика». Полагаю, он просто хотел подчеркнуть, что иногда вы можете потратить еще несколько минут на размышления о дизайне и придумать лучшую концепцию для реализации или просто сделать вывод, что регулярные выражения - это концепция!

1
ответ дан 18 December 2019 в 09:53
поделиться

Если проверяемый ввод выполняется на обычном языке, то регулярное выражение является правильным инструментом для его проверки.

0
ответ дан 18 December 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: