什么时候应该修剪输入?


11

我正在学术界之外大量学习有关行业的知识。

我今天想到的一件事是削减输入。

一方面,我不希望用户/实现者不断收到意想不到的结果,因为它们的输入空间太大,因此我需要在每次函数调用后不断调整用户输入。

但是同时,如果我要在办公室内部创建一个供内部使用的API库,则尾随/前导空格可能对结果至关重要。

然后有一些实例,我不确定空格是否重要。

对我来说,最大的问题是我发现自己在代码中的任何地方都不断地调用.trim()。

是否有人对如何处理某些情况有任何技巧或经验法则?


1
当您在此处说“ API”时,您是在谈论编写一个库还是在谈论某种内部Web服务?这是一个重要的细节。
肖恩·麦克索明

这实际上是我要建立的图书馆(谢谢)
TacticalMin 2013年

这听起来像是自回答...如果您不确定是否不需要空格,则可能不应该修剪文本。
GrandmasterB

Answers:


13

切勿在API中随意修剪空格。

任意修剪空白的唯一原因是作为UI功能。人们经常在输入字段的末尾留下空格,但看不到他们已经这样做了。返回消息非常令人困惑,因此-除了在极少数情况下用户可能输入“ A”来表示“ A”以外的其他字样之外,您通常可以放弃任何无用的空格。

但是计算机不会错误地添加空间,而是会添加空间,因为程序员会告诉他们添加空间;如果计算机中断了您的API实现,则应向开发人员抛出错误。如果没有,则应使用它们。

当然,这些数据很有可能是通过应用程序从人那里获得的,但这是应用程序开发人员的问题,而不是您的问题。再说一次,如果它们会给您带来麻烦,请拒绝它们。如果没有,请接受。不要修剪它们,并假设您的消费者知道会发生这种情况。


感谢您抽出宝贵的时间回答。您总结了其他所有人似乎在说的话。
TacticalMin 2013年

3

YAGNI的一个有用原则是:“您将不需要它”。它的意思是,当你有一个特点,你不知道你真正需要一个想法,没有实现它,直到你确保你需要它。然后,当需要变得明显时,代码库中实际需要的位置也应该变得明显。


1

这取决于输入将用于什么。如果您要从作为搜索词输入的数据中修剪空白,那么我可以理解您为什么这样做。学习不信任进入系统的数据是一个好习惯,我主要考虑的是SQL Injection,但也有其他方面。

您可能不需要总是修剪输入,但绝对应该总是检查输入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.