1

这个问题旨在讨论人们在处理用户输入时的个人意见。

我正在处理的项目的这一部分以类似于 IRC 聊天的方式处理用户输入。例如,有设置命令之类的,用于聊天、执行操作等。

现在,我有几个选项可供选择来解析此输入。我可以使用正则表达式,我可以直接解析它(即一个包含所有支持的命令的大型 switch 语句,只需检查用户输入中的前 x 个字符),或者甚至可以发疯并添加类似于 Flex 的解析器/野牛实现。我正在考虑的另一种选择是在 XML 文件中定义所有命令,以将它们与代码实现分开。

那么,社区的想法是什么?

4

1 回答 1

1

我会选择一个很好的混合包。

显然,您必须清理输入。确保那里没有讨厌的东西,这取决于输入将在哪里防止 SQL 注入、XSS、CSRF 等......

但是,当您的输入是干净的时,您可以使用一个正则表达式来捕获预期作为命令的那些并获取所有必要的子匹配(命令参数等),然后使用某种调度程序开关语句或类似语句。

这里真的没有包罗万象的最佳实践,除了总是总是和四倍——总是确保用户输入被清理。除此之外,选择最适合您的情况的方法。

显然,有些人说如果您遇到问题并且正在考虑使用 reg exps 来解决所述问题,那么您遇到了两个问题,但请谨慎使用,它们是有史以来最好的事情。请记住,正则表达式怪物可以非常快地阅读到非常差的可读性。

于 2009-04-23T16:00:37.033 回答