【发布时间】:2020-06-23 13:34:26
【问题描述】:
我有一个文本区域,其内容稍后将用于创建 URL。如何验证 url - cast 不会引发错误?有没有可以做到这一点的功能?例如删除所有无效字符。
我按以下方式转换字符串,但如果用户输入换行符,则转换不起作用:let url: URL = URL(string: urlPath)!
【问题讨论】:
-
我建议再次阅读有关选项的章节。
!是强制解包,确实可以使您的程序崩溃。查找“可选绑定”! -
删除无效字符不会满足用户的要求。
http://example.com/url with spaces无效,但将其转换为http://example.com/urlwithspaces不是答案。系统可以告诉你一个字符串是否是一个有效的 URL,但它不能告诉你用户体验应该是什么。你想限制输入(记住用户可以粘贴)?如果值错误,是否要显示错误?你想删除一些明显错误的东西(比如最后的换行符)吗?一旦您准确定义了体验,我们就可以针对具体案例提供帮助。 -
是的,我会限制用户输入,因为它只是他们必须写的一个短语。我已经解决了空白问题,我只需要注意制表符或换行符。我想知道除了替换“\n”之外是否还有其他解决方案
-
与您的问题无关,但您的代码中没有发生强制转换。您将
String传递给URL的init,这不是强制转换。通过使用类型转换运算符as完成转换。 -
用户如何在文本字段中输入换行符?