programing

정규식 빈 문자열 또는 전자 메일

javamemo 2023. 8. 8. 19:57
반응형

정규식 빈 문자열 또는 전자 메일

SO에서 Regex 이메일 유효성 검사를 많이 찾았지만 빈 문자열을 허용할 수 있는 이메일을 찾지 못했습니다.이것은 Regex를 통해서만 가능합니까?빈 문자열 또는 전자 메일만 허용하시겠습니까?나는 이것을 Regex에만 갖고 싶습니다.

이 정규식 패턴은 빈 문자열과 일치합니다.

^$

전자 메일 또는 빈 문자열과 일치합니다.

(^$|^.*@.*\..*$)

빈 문자열 또는 전자 메일 일치

(^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

빈 문자열 또는 전자 메일과 일치하지만 빈 공간의 양도 일치

(^\s*$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

전자 메일 일치 정규식 자체에 대한 자세한 내용은 다음을 참조하십시오.

http://www.regular-expressions.info/email.html

위의 답변은 작동합니다($공백). 하지만 저는 이것을 시도했고 이렇게 그냥 비워두는 것도 작동합니다.

/\A(INTENSE_EMAIL_REGEX|)\z/i

역순으로 같은 것.

/\A(|INTENSE_EMAIL_REGEX)\z/i

이렇게 하면 해결됩니다. 빈 문자열을 허용하거나 전자 메일 ID를 정확하게 지정합니다.

"^$|^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"

선호합니다/^\s+$|^$/gi빈 공간과 빈 공간을 일치시킵니다.

console.log("  ".match(/^\s+$|^$/gi));
console.log("".match(/^\s+$|^$/gi));

빈 공간의 길이를 포함해야 하는 경우 다음 정규식을 사용할 수 있습니다.

"^\s*$"

레일 내에서 사용하는 경우 - 활성 레코드 유효성 검사를 설정할 수 있습니다.allow_blank: true

다음과 같이:

validates :email, allow_blank: true, format: { with: EMAIL_REGEX }

전자 메일을 정규식과 일치시키지 마십시오.그것은 극도로 못생기고 길고 복잡하며 당신의 정규 파서는 어쨌든 그것을 처리할 수 없을 것입니다.일치하는 라이브러리 루틴을 찾습니다.전자 메일 주소를 일치시키는 실질적인 문제만 해결하려면(일반적으로 작동하는) 다른 사용자가 제출한 regular-expressions.info 링크를 사용합니다.

빈 문자열에 대해서는,^$여러 사람이 언급했고 잘 작동할 것입니다.

언급URL : https://stackoverflow.com/questions/5063977/regex-empty-string-or-email

반응형