问题标签 [nsdatadetector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
217 浏览

cocoa - NSDataDetector:它解析什么?

NSDataDetector 可以解析的表达式的范围是否记录在案?

我们知道 NSDataDetector 可以解释很多表达式,例如“星期一晚上”。NSDataDetector Class Reference不想详细介绍这些内容是可以理解的,因为这可能需要频繁地修改文档。

不过,最好知道什么是公认的,什么不是,特别是着眼于扩展课程。


(我怀疑NSHipster错误地认为 NSDataDetector 依赖于 Cocoa 的语言分析 API;如果确实如此,NSDataDetector 会是 NSRegularExpression 的子类吗?尽管我承认从 NSRegularExpression 继承似乎很奇怪,并且可能是代码异味。)

0 投票
2 回答
1834 浏览

ios - 使用 NSDataDetector 验证电话号码

如何使用 NSDataDetector 验证电话号码。在我的项目中,任何高于 14 的文本长度也是有效的,但 NSDataDetector 不会以这种方式检测到它。

我正在使用以下 stackoverflow 帖子中的代码:NSTextCheckingResult for phone numbers

0 投票
2 回答
411 浏览

ios - iOS 7 UITextView 选择文字或图片

我在 iOS 7 中有一个使用属性文本的 UITextView。在放入 UITextView 之前解析的原始文本看起来像这样。

“欢迎来到我的例子@(John Doe)(johndoeid) @(Jane Doe)(janedoeid)”

当我解析此文本并将其放入 UITextView 时,它看起来像这样。

“欢迎来到我的榜样John Doe Jane Doe

我的问题是这个。

当我在文本视图中单击 John Doe 或 Jane Doe 时,如何获取用户“johndoe”或“janedoe”的 ID,以便对此采取措施?我正在考虑存储原始位置和新位置并使用它,但这似乎很笨重。

0 投票
1 回答
2785 浏览

objective-c - NSDataDetector 检测“电话号码”文本

我可以解释这个问题的最简单方法是使用代码示例及其输出,但本质上正在发生的事情是NSDataDetector在包含单词“电话号码”的字符串中检测电话号码。

输出:

我已经阅读了文档并在 SO 周围进行了搜索,但找不到任何表明这是否是预期行为的东西,如果是,为什么。

这发生在 7.0 模拟器以及运行 7.0.4 的 iPhone 5s 上。

如果有人能对这个问题有所了解,我将不胜感激。

更新: 为了澄清,我不希望文本“电话号码”成为访问NSTextCheckingResult phoneNumber属性时结果的一部分。

0 投票
2 回答
2646 浏览

ios - 使用 NSDataDetector 进行 NSDate 检测

我试图从具有UNKNOWN格式的 NSString 中获取 NSDate,所以我编写了一个如下所示的函数

它运作良好,除了一个地方。

如果我调用

它打印

日期:澳大利亚东部标准时间 2014 年6 月 12日星期四下午 12:00:00

同时,如果我打电话

它打印

日期:澳大利亚东部夏令时间 2013 年12 月 13日星期五下午 12:00:00

基本上,我希望函数表现一致。由于我住在澳大利亚,它应该在 12 月 6 日返回第一次执行。第二次调用结果是正确的。

我在这里做错了什么?

0 投票
3 回答
752 浏览

ios - 为 NSDataDetector 设置上下文日期

假设今天是 2014 年 1 月 20 日。如果我使用 NSDataDetector 从字符串"tomorrow at 4pm"中提取日期,我将得到2014-01-21T16:00。伟大的。

但是,假设我希望 NSDataDetector假装当前日期是 January 14th, 2014。这样,当我解析“明天下午 4 点”时,我会得到2014-01-15T16:00。如果我更改设备上的系统时间,我会得到我想要的。但是,有没有办法以编程方式指定这个?

谢谢。

0 投票
2 回答
1197 浏览

ios - NSDataDetector 检测字符串中的名称

我一直在努力理解这NSDataDetector门课。我已经阅读了文档,但无法理解。我所做的一切 Xcode 都告诉我有一个错误。

我觉得我可能在这次尝试中走上了正确的道路。如何编写一个简单的基础程序来查找字符串中的名称?

0 投票
1 回答
309 浏览

objective-c - 通过 NSDataDetector 检测持续时间

我正在尝试使用NSDataDetector来检测字符串中的不同数据。我注意到在检测日期时(即 resultType 为NSTextCheckingTypeDate),存在三个有效属性:

  • 日期
  • 期间
  • 时区

我能够弄清楚如何创建为日期和时区生成值的字符串,但我不确定哪个字符串会为持续时间生成值。

例如,当我尝试解析时12:15 UTC,它会填充日期和时区。我在想类似的东西10 minutes会产生持续时间的价值,但它甚至不会产生匹配。

注意duration应该根据NSHipsterApple工作。请注意,在NSTextCheckingResult文档中,有一个标题为“日期和时间的文本检查结果”的部分提到了duration.

0 投票
2 回答
190 浏览

objective-c - NSDataDetector 和 1900 年之前的日期带回错误的日期

我在 Apple Dev 论坛https://devforums.apple.com/message/956514上发布了这个问题。我希望它也可以在这里发布。Apple 开发者论坛上还没有回复。

每当我输入小于 1900 年的日期时,NSDataDetector 都会匹配错误的日期。

例如:

1201 年 1 月 1 日匹配到 2015 年 1 月 1 日和 1201 年 2 月 1 日匹配到 2014 年 2 月 1 日

似乎早于 1900 年的 1 月份的任何日期都会返回 1 月份的那个日期,但 2015 年。任何晚于 1 月但 1900 年之前的任何年份的日期都与 2014 年的那个日期匹配。

这是我检测日期的代码:

myDateString 只是一个包含需要解析的日期值的字符串。

我做错了什么还是这是 NSDataDetector 的一个已知问题?

0 投票
1 回答
428 浏览

ios - NSDataDetector & NSDate 返回当前日期

我正在尝试使用包含日期/时间的 NSString,并从中创建一个 NSDate 对象,以便我可以进行相应的操作。

我过去使用过 NSDataDetector 没有问题。但是,当我现在尝试时,detectedDate 正在返回当前日期,而不是在字符串中找到的日期。

有人可以解释为什么这不会像我过去使用的那样从字符串中返回日期吗?或建议如何最好地实现这一目标?

非常感谢。