我发现filter_var 非常在使用PHP验证和清理用户输入方面非常有用,但我还没有在ColdFusion中找到任何方便的东西(更具体地说, CF8)。
显然我可以使用REReplace将一些东西混在一起,但这需要更多的时间来编写代码,并且比使用PHP中提供的预定义过滤器更加丑陋。是否有更有效的方式或我只需要咬紧牙关?
答案 0 :(得分:3)
您可以使用三种不同的选项。由于您尝试管理用户输入,我假设您正在使用表单。 isValid最接近地模仿您的功能,允许您检查指定的值是匹配数据类型还是正则表达式并返回true或false,并且默认情况下包括属性以定义范围。但是,除了定义正则表达式之外,它不支持创建自定义“过滤器”的功能。
第二个选项是在POST处理页面上使用cfparam标签,它允许您指定变量的存在,针对数据类型进行测试或定义正则表达式,并可选择指定默认值变量不存在。如果您尝试处理未定义字段但未分配默认值的页面,则ColdFusion会抛出错误。
最后,您可以在表单上使用cfform和cfinput字段进行验证;它允许客户端数据验证存在和类型(它还支持服务器端验证,但它的实现很草率),正则表达式和输入屏蔽:获取用户输入的数据并使其符合特定格式(如添加破折号)电话号码和邮政编码。)