我想格式化网址。下面是一个例子:
输入:
www.google.com
或
google.com
输出:
https://www.google.com/
我需要格式化url,因为我使用的validator
函数需要检查文本是否为url,当我输入www.google.com
或google.com
时,它说它不是url,因为它要求文本开头为https
。
我的代码:
validator: (value) {
if (value == null) {
return null;
}
if (Uri.parse(value).host.isEmpty) {
return "Please type a valid url";
}
},
如果您需要更多信息,请随时发表评论。
如何格式化网址?我将不胜感激任何帮助。谢谢你提前!
2条答案
按热度按时间s3fp2yjn1#
我在validator函数中添加了一些条件:
7uzetpgm2#
我会首先使用类似下面的内容对URL进行消毒:
其将仅在没有方案已经存在时添加
https
URL方案,从而避免对使用其它方案(例如,file:///some/path
、mailto:user@example.com
、ssh://user@host.example.com
、tel:+1-800-555-1212
)的URL进行破坏。此外,请注意您的
Uri.parse(value).host.isEmpty
检查并不十分正确:':'
),Uri.parse
将引发异常。您可能应该改用Uri.tryParse
。file:///some/path
mailto:user@example.com
(But如果你不关心这样的网址,那也没关系。)