【发布时间】:2014-03-04 00:38:48
【问题描述】:
我在我的数据库中为我的客户保存了电话号码,如您所知,电话号码没有特定格式,所以有些号码就像(+1)123 3123 OR 212-43-1.,问题出在我的 php 代码中,我进行查询以检查一个电话号码存在,所以如果我输入像11233123 这样的号码,那么它不会产生任何结果,但它已经在那里了。
关于如何匹配的任何解决方案?
我想到的解决方案是在检查时删除所有特殊字符
【问题讨论】:
-
你应该用一个模式格式化每个数字然后保存它,在搜索它时,验证格式然后搜索。您的模式可能就是您所说的:删除所有特殊字符。
-
解决方案是在 in 到数据库的途中删除任何非数字的东西。在 UI 中向用户显示电话号码时,您应该只对电话号码进行格式化。
-
@Seanbright 在数据库中进行规范化的问题是您必须在输出时进行格式化,而这本身就充满了困难。出于这个原因,我倾向于存储这两种形式。
-
@MikeW 这是个好主意
标签: php mysql regex select varchar