繁体   English   中英

匹配电话号码,无论其格式如何

[英]Match Phone Numbers Regardless of Formatting

我已经写了一个查询Mongo来搜索电话号码。 问题是电话条目是String而不是Number 起初我以为它可以正常工作,但是现在我意识到,如果查询的格式不正确,它将无法匹配。

所以我想我的问题是,不管格式如何,匹配电话号码的最简单方法是什么?

最坏的情况是,我使用$ where语句,并通过从两个值中删除数字并对其进行正则表达式匹配来检查是否相等。 只是想知道是否有更优化的方法来做到这一点?

我首先将规范化的电话号码(例如,去除非数字字符或格式化为标准格式)存储在数据库中,因为尚未对其进行规范化,因此对于每个搜索请求即时进行此操作将非常昂贵,因此,如果您还没有太多条目(例如,如果仍在开发中),那么一个脚本将对所有条目进行一次标准化(如果您有生产系统,则可以在非公开时间内数批处理)可能的。

然后,您的where子句将仅对输入进行规范化,然后搜索将容易得多。

顺便说一句,地址也一样,您必须规范化数据以执行良好的搜索,或者必须开发一些模糊匹配算法,这只会变得更慢。 (并且可能会花费您比您想象的更多的时间)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM