Экранирование + и% для электронной почты в регулярном выражении с использованием ColdFusion

Я кодирую для проверки электронной почты, которая может принимать набор специальных символов. Я мог успешно добавлять других в RegEx. Однако, когда я пытаюсь использовать «+» и «%», это дает мне ошибку. Я использовал '\', чтобы разрешить использование специальных символов.

\+ --> adds a space removing + sign
\% --> removes 3rd char after % sign

person Aniruddha    schedule 28.11.2012    source источник
comment
1. Покажите нам свое регулярное выражение. 2. Покажите нам ошибку.   -  person Dour High Arch    schedule 29.11.2012
comment
3. Используйте UrlDecode для декодирования значений в кодировке URL. 4. Перестаньте пытаться заново изобрести уже работающее колесо — просто используйте либо isValid('email',input), либо ListLen(input,'@') EQ 2.   -  person Peter Boughton    schedule 29.11.2012
comment
Большое спасибо всем за предложения. Это была проблема с URLDecode. Я удалил его, и теперь я могу избежать «+».   -  person Aniruddha    schedule 30.11.2012
comment
isValid('email', что бы то ни было) не проверяет домен .education должным образом.   -  person Robyn Paxton    schedule 28.12.2017


Ответы (1)


ColdFusion имеет несколько встроенных функций проверки таких вещей, как адреса электронной почты. Вы можете просто использовать что-то вроде:

<cfif IsValid("email", YourEmailVar)>
    <!--- do what you want for success here --->
<cfelse>
    <!--- do what you want for validation failure here --->
</cfif>

Документация по функции IsValid

Функция IsValid также позволит вам использовать RegEx, если вы предпочитаете.

ИЗМЕНИТЬ

Чтобы проверить переменные из области URL, просто добавьте это к имени переменной. Вот так:

<cfif IsValid("email", URL.YourURLEmailVar)>
person Miguel-F    schedule 28.11.2012
comment
Это хорошее решение, если мне нужно проверить форму. Однако я отправляю эти значения по URL-адресу и проверяю атаки SQLi. Итак, мой URL-адрес проверяет и разрешает использование некоторых специальных символов на основе идентификатора/имени. В этом случае я разрешаю электронной почте использовать некоторые из часто используемых специальных символов. - person Aniruddha; 29.11.2012
comment
Вы должны быть более конкретными в своем вопросе. Нам нужно больше деталей, чтобы помочь вам. Трудно сказать, что именно вы пытаетесь сделать. Эта проверка будет работать с любой переменной ColdFusion. Это не обязательно должна быть переменная формы, хотя может быть. - person Miguel-F; 29.11.2012
comment
Итак, мой URL-адрес проверяет и разрешает использование некоторых специальных символов на основе идентификатора/имени. В этом случае я разрешаю электронной почте иметь некоторые из часто используемых специальных символов, которые используются - person Aniruddha; 29.11.2012
comment
Внедрения SQL можно избежать, используя параметризованные запросы через cfqueryparam. - person Peter Boughton; 29.11.2012