From cc70b7b55c9edcd0ff038f59080699060fbbede1 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Thu, 17 Dec 2015 17:46:58 -0800 Subject: Correctly extracting email addresses An email address contains user name part and host name part. User name allows dash or underscore, but not leading/ending/double period. Host name doesn't allow leading/ending/double period either. BUG=489107 R=jun_fang@foxitsoftware.com, thestig@chromium.org Review URL: https://codereview.chromium.org/1530763005 . --- core/include/fxcrt/fx_ext.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'core/include/fxcrt') diff --git a/core/include/fxcrt/fx_ext.h b/core/include/fxcrt/fx_ext.h index e8d8bc7b5f..a4a92d2fb0 100644 --- a/core/include/fxcrt/fx_ext.h +++ b/core/include/fxcrt/fx_ext.h @@ -36,6 +36,15 @@ inline int32_t FXSYS_tolower(int32_t ch) { inline int32_t FXSYS_toupper(int32_t ch) { return ch < 'a' || ch > 'z' ? ch : (ch - 0x20); } +inline FX_BOOL FXSYS_iswalpha(wchar_t wch) { + return (wch >= L'A' && wch <= L'Z') || (wch >= L'a' && wch <= L'z'); +} +inline FX_BOOL FXSYS_iswdigit(wchar_t wch) { + return wch >= L'0' && wch <= L'9'; +} +inline FX_BOOL FXSYS_iswalnum(wchar_t wch) { + return FXSYS_iswalpha(wch) || FXSYS_iswdigit(wch); +} inline int FXSYS_toHexDigit(const FX_CHAR c) { if (!std::isxdigit(c)) -- cgit v1.2.3