检查 NSString 是否仅包含字母数字+下划线字符

2024-01-07

我有一个字符串,只需包含 a-z、0-9 和 _

如何检查输入是否有效?我已经尝试过,但它接受像 å,ä,ö,ø 等字母。

NSString *string = [NSString stringWithString:nameField.text];
NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
[string stringByTrimmingCharactersInSet:alphaSet];
[string stringByReplacingOccurrencesOfString:@"_" withString:@""];
BOOL valid = [[string stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];

您可以创建自己的字符集:

NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_"];

一旦你有了它,你就可以将它反转为原始字符串中不存在的所有内容:

s = [s invertedSet];

然后您可以使用 string 方法来查找字符串是否包含倒排集中的任何内容:

NSRange r = [string rangeOfCharacterFromSet:s];
if (r.location != NSNotFound) {
  NSLog(@"the string contains illegal characters");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 NSString 是否仅包含字母数字+下划线字符 的相关文章

  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • SwiftUI 列表与右侧的部分索引?

    是否可以有一个在右侧有索引的列表 就像下面 SwiftUI 中的示例一样 我在 SwiftUI 中做了这个 Contacts swift TestCalendar Created by Christopher Riner on 9 11 2
  • 如何在IOS中的UIStackView中设置权重

    UIStackView与安卓类似LinearLayout但我不知道如何设置子视图的权重 假设我有一个垂直的UIStackView and 3 UIImageView就在里面 我想连续设置权重3 6 1UIImageViews 我怎么做 UI
  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐

  • 根据给定索引和元素数量的列表创建子列表。序言

    我正在尝试解决一个简单的序言问题 但我无法解决它 从列表中 需要创建一个给定索引 I 的子列表 然后从 I 中创建一个给定为 N 的下一个元素 如果索引大于列表长度 我将使子列表为空 如果 N 元素数量 大于列表中的其余元素 我将获得从 I
  • StackExchange API - 反序列化 JSON 响应中的日期

    我正在尝试使用 stackexchange api 我正在尝试获取一些用户信息 如果运行 您将获得 JSON 响应 items badge counts bronze 5630 silver 4212 gold 267 account id
  • 在Python中交换链表中的对,一个链接消失了?

    我一直在学习链表 并且在 python 中实现链表比我预期的要容易 然而 当涉及到解决 交换链表中的对 的问题时 由于某种原因 我的第二个链接在交换过程中消失了 我已经盯着这个问题很多年了 并尝试了在网上找到的不同解决方案 他们都得到相同的
  • 如何在 Swift 中使用闭包从字符串中提取两个整数来执行计算

    我目前正在使用mapSwift 中带有闭包的属性 用于从数组中提取线性因子并计算跨越一个八度音阶的音乐频率列表 let tonic Double 261 626 middle C let factors 1 0 1 125 1 25 1 3
  • 从 icc 获取 Intel 语法 asm 输出,而不是默认的 AT&T 语法?

    我陷入了一个问题 我已经使用 gcc 编译 汇编我的 C 代码一段时间了 并习惯于阅读 Intel 汇编语法 我用的是 masm intel生成程序集文件时的标志 但最近因为公司迁移 他们得到了Intel的icc 声称更好 所以现在我需要使
  • 访问 try-catch 块外部的变量

    我有以下代码 class ClassA public ClassA std string str std string GetSomething int main std string s try ClassA a ClassA s cat
  • 仅使用 css 而不使用 javascript 在悬停时显示叠加层

    当我将鼠标悬停在导航栏菜单上时 我试图制作整页叠加ul 覆盖层div位于页面顶部 当我将鼠标悬停在ul the li链接出现 但覆盖层不出现 我怎样才能使用 CSS 来显示叠加层 有人可以帮忙吗 这是 HTML 和 CSS 代码 标题的完整
  • 如何在 REST Web 服务中发送 JSON 数据?

    如何在 REST Web 服务中发送 JSON 数据 我有一个 json 对象 其中包含产品 Id 商店 Id 价格 产品单位 数量 值 这里除产品单位值外 所有值均为整数 现在 我想将这些值发送到其余的 Web 服务中 能否请您提供一些样
  • Angular2 Safari 后退按钮

    在实际的 Angular2 beta 14 及之前的版本 中 Safari 实际上使用 9 1 上的后退按钮 使用路由和多个视图时 似乎存在问题 https github com angular angular issues 7722 ht
  • 协议对保留计数有影响吗?

    我有一个非常简单的代码 我是故意使用委托创建内存循环 尝试观察和学习如何使用 Xcode 的 Memory Graph 我不明白的是为什么在连接部分 Xcode 说有3连接 应该只有2个 如果我用闭包创建一个内存循环 那么它会显示2连接 我
  • Spring 5 - 无 ServletContext 设置异常

    当我尝试使用 Spring 5 运行我的应用程序时AnnotationConfigApplicationContext类 获取异常No ServletContext set 这是我的主要方法 public class Run public
  • 标识列中存在重复值

    我有一个表 其中有一列名为id这是类型Identity 但此列包含重复值 1 8 然后又包含重复值 1 10 这怎么可能呢 我测试了 Giogri 所说的内容 如果在表有行后启用身份规范 至少在 2008 年 也可能是其他版本 数据库将从最
  • 如何在 Firestore 和 Android 中选择位置?

    我对 Cloud Firestore 非常陌生 所以请帮助我 我正在为青少年创建一个应用程序 我想在其中显示每个城市非常好的地点的列表 我还希望每个用户都可以将任何位置保存到最喜欢的部分 以便他或她可以向他或她的朋友显示该位置列表 我的实际
  • Realm = RLMRealm' 没有成员 'setDefaultRealmPath'

    我已将 Realm framework 和 RealSwift framework 添加到项目中 和 导入领域 虽然我收到此错误 RLMRealm 没有成员 setDefaultRealmPath let directory NSURL N
  • WebAssembly 从 wasm 调用 JavaScript 方法,即在 C++ 代码中

    我正在使用 WebAssembly 到目前为止 我能够管理 emscripten 将我的测试 C 项目编译为 wasm 文件 em 为我提供了 2 个文件 即 mainTest js mainTest wasm 当我在 html 页面中加载
  • 为什么向传递的 Iterator 引用添加 mut 可以解决这个问题?

    在下面的 Rust 代码片段中 fn main let list1 Vec
  • 根据区域大小在 NetLogo 中间隔代理

    我正在尝试在 NetLogo 中开发一个模型 其中动物代理将在每次模型启动时随机分布在空间中 然而 动物是有领地意识的 关于如何让动物从一定大小的圆形区域开始 可以与其他动物在一定程度上但不完全重叠 有什么建议吗 下面是我开始的代码片段 但
  • Compass/Sass 在 OSX 上为所有人组写入具有“无访问”权限的文件

    我正在使用 Sass 和 Compass 在 osx 上 并使用 compass watch 来编译我的 scss 文件 编译运行正常 因为使用正确的内容创建了 css 文件 但是 查看权限表明该文件是使用 Everyone 组编写的 具有
  • 获取GVariant的内容

    我目前尝试与 dbus 通信并有一个函数 该函数将返回array of struct string uint32 string string object path 我将结果存储在GVariant并打印这个GVariant显示那里有正确的结
  • 检查 NSString 是否仅包含字母数字+下划线字符

    我有一个字符串 只需包含 a z 0 9 和 如何检查输入是否有效 我已经尝试过 但它接受像 等字母 NSString string NSString stringWithString nameField text NSCharacterS