检查电子邮件地址在 iOS 上是否有效[重复]

2023-12-03

可能的重复:
在 iOS 2.0 上的 Objective-C 中验证电子邮件地址的最佳实践?

我正在开发一个 iPhone 应用程序,我需要用户在登录时提供他的电子邮件地址。

检查电子邮件地址是否有效的最佳方法是什么?


良好的可可功能:

-(BOOL) NSStringIsValidEmail:(NSString *)checkString
{
   BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
   NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
   NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
   NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
   NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
   return [emailTest evaluateWithObject:checkString];
}

关于宽松与严格的讨论 -http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/

因为类别更好,您还可以添加一个界面:

@interface NSString (emailValidation) 
  - (BOOL)isValidEmail;
@end

实施

@implementation NSString (emailValidation)
-(BOOL)isValidEmail
{
  BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
  NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
  NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
  NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
  NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
  return [emailTest evaluateWithObject:self];
}
@end

然后利用:

if([@"[email protected]" isValidEmail]) { /* True */ }
if([@"InvalidEmail@notreallyemailbecausenosuffix" isValidEmail]) { /* False */ }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查电子邮件地址在 iOS 上是否有效[重复] 的相关文章

随机推荐

  • SQL Server 添加字符串值时列名无效

    我是 SQL Server 新手 我已经像这样创建了我的表 CREATE TABLE Accidents Id INT NOT NULL PRIMARY KEY IDENTITY GUID VARCHAR 100 Latitude VARC
  • 在 Android 上从存储执行时,executeOfflineCommand 会跳过命令

    我必须在程序中按顺序执行 开始 和 完成 命令 并在最后同步所有内容 因此 我首先按顺序插入离线命令 并假设它们将以相同的顺序执行 为此 我使用 List 和 Iterator 这里的问题是 完成命令将在中间的一些奇怪的情况下错过执行 并且
  • 用Python读取PDF并转换为PDF中的文本

    我已经使用此代码将 pdf 转换为文本 input1 Home Sai Krishna Dubagunta pdf output Home Me txt os system pdftotext s s input1 output 我已经创建
  • ASP.NET核心0x80004005

    我是 ASP NET Core 的新手 我正在尝试将基本的 ASP NET Core Web 应用程序部署到 Windows 2012 R2 服务器 我可以使用 Visual Studio Express 在本地构建和运行该项目 但是当我部
  • 使用 JavaFx 监听系统剪贴板

    正如这个问题的答案中所述 可以设置一个时间轴来检查系统剪贴板是否有更改 在 javafx 8 中设置和使用时间线之外的变量 但还有更好的办法吗 例如 事件监听器 我搜索了 JavaFx 8 文档 但没有发现任何明显有帮助的内容 使用 Jav
  • 如何将 GeoJSON 导入 OpenLayers?

    我已经尝试将以下函数和新的向量层放入我的代码中 我将 GeoJSON 文件上传到我的 BPlaced 帐户以链接我的代码中的文件 对吗 Geojson 与网站具有相同的坐标系 另外 代码似乎可以工作 但我没有看到任何 Geojson 或者还
  • Spring Integration 通过注释控制总线配置

    只是一个简单的问题 有什么办法可以配置吗弹簧集成通过注释控制总线 没有任何 xml
  • 在 SICP 中使用 lambda 定义 cons/car/cdr

    当我在 SICP 中遇到以下 cons 和 car 的 替代 定义时 我刚刚开始觉得我对 lambda 在球拍和方案中的使用有一个模糊的理解 define cons x y lambda m m x y define car z z lam
  • 如何在tax_query和meta_query WordPress中给出OR关系

    我想给出之间的 OR 关系tax query and meta query post args array post type gt post order gt DESC meta query gt array relation gt OR
  • .sqlite 和 .storedata 之间有什么区别

    当您使用核心数据在 Xcode 上启动新的 iOS 项目时 它会使用扩展名初始化数据库 sqlite 当您对 OSX 的新项目执行相同的操作时 数据库的扩展名是 storedata 两者有什么区别吗 谢谢 iOS 上的 CoreData 仅
  • Dialogflow CX 中的可单击选项

    是否可以显示可点击的选项 in Dialogflow CX 如果 是 我可以举个例子 我在 Dialogflow CX 中创建了一个简单的代理 当用户输入城市名称时 我想列出应该是的密码可点击的 我怎样才能做到这一点Dialogflow C
  • String.Split 与字符串?

    我有一个可能非常简单的问题 我想做一个经典String Split 但是是字符串 而不是字符 喜欢string Split word 并返回一个数组 就像我所做的那样string Split x 您可以使用String Split stri
  • 验证器的 Spring 单元测试问题

    我正在尝试为我拥有的验证器类编写单元测试 因此 在我的 UniqueEmailValidator 类中 我注入了一个 Service 组件来检查它是否存在 AllArgsConstructor public class UniqueEmai
  • 对 c# .net 中的服务结果进行正确的空检查

    有贾里德 帕森斯的推文谁是 C 编译器开发人员 该推文声称我们应该使用 is object 作为非空检查 我的问题是为什么会这样 如果我从服务调用中得到结果 我应该运行 is object 检查而不是 null 吗 根据我的理解和我在微软文
  • 如何使用OpenSSL的SHA256函数

    我正在编写一个程序来熟悉 OpenSSL libncurses 和 UDP 网络 我决定使用 OpenSSL 的 SHA256 来熟悉行业加密标准 但我在使其正常工作时遇到了问题 我已将错误与 OpenSSL 与编译程序的链接隔离开来 我正
  • MySQL:使用 BEGIN&COMMIT 插入同一查询中的多个表

    我想使用 BEGIN 和 COMMIT 在同一查询中插入多个表 看来错误是在开始时发生的 这是我的 SQL 命令 BEGIN INSERT INTO Product pName pBrand pCategory pSize pQuantit
  • 如何获取字段类型和值?

    我目前正在尝试使用 mysql php 构建一个表单 下面是我到目前为止的代码的一部分 BLOCK 1 proceso mysqli fetch assoc result my query returns only one row
  • 默认模板类参数混淆了 g++?

    昨天 我遇到了 g 3 4 6 编译器问题 我使用 Intel 9 0 编译器编译的代码没有出现问题 下面的代码片段显示了发生的情况 template
  • 替代 tkinter.dooneevent

    我正在将一个程序 VMD 视觉分子动力学 移植到 Python 3 x 该程序是用 C 编写的 并且嵌入了 Python 和 TCL 解释器 其大部分 UI 是使用 TCL TK 框架和 OpenGL 进行硬编码的 因此 UI 刷新是手动完
  • 检查电子邮件地址在 iOS 上是否有效[重复]

    这个问题在这里已经有答案了 可能的重复 在 iOS 2 0 上的 Objective C 中验证电子邮件地址的最佳实践 我正在开发一个 iPhone 应用程序 我需要用户在登录时提供他的电子邮件地址 检查电子邮件地址是否有效的最佳方法是什么