captn3m0 / pincode
印度邮政编码的正则表达式验证器
Requires (Dev)
- phpunit/phpunit: ^9.0 || ^8.0 || ^10.0
README
使用几个正则表达式和零假阳性来验证印度的邮政索引号码。正则表达式在 regex.txt 中可用。每个区号(PIN号的第一位数字,从1到8)有一个正则表达式。作为Ruby、Python、Node.js和浏览器的包提供。
为什么?
简单的 \d{6} 方法会将许多无效的邮政编码标记为有效。在900000种可能的组合中,只有大约 19000 是印度的有效邮政编码。一个简单的例子是 111111,这是一个无效的邮政编码,但任何简单的6位检查都会将其视为有效。
源代码
数据来源是data.gov.in上的"All India Pincode Directory"数据集。数据集的最后更新日期是2019年5月30日。
用法
regex.txt文件大小为32KB,因此您可以轻松地将其用于任何地方,包括浏览器。如果您正在使用以下任何包,它已经压缩并交付。您可以直接使用正则表达式,或者通过一些辅助方法。
支持的编程语言版本
该项目只支持各种语言的受支持版本。
PHP
该包可在packagist上找到。
要使用PHP包
use PIN\Validator as P; // validates a given pincode // returns boolean P::validate('110011'); // returns true; // Searches for all valid pincodes in a given string. // returns array(string) P::search('bangalore 560029'); // returns ["560029"]
Node.js
该包可在npm上找到。
要使用包
const P = require('pincode-validator'); P.validate('110011'); // returns true P.search('my pincode is 560029'); // returns ['560029'] // or directly use the regex in your code P.exactRegex.match('560029') "address with pincode (560029)".matchAll(P.regex)
请参阅tests/validate.js以获取更多示例。
Ruby
将此行添加到您的应用程序的Gemfile中
gem 'pincode_validator'
然后执行
$ bundle
或自行安装
$ gem install pincode_validator
require 'pincode_validator' Pin::valid?('560029') # returns true Pin::valid?('111111') # returns false Pin::search('my pincode is 244713') # returns ['244713'] Pin::search('my pincode is 244713 or 560029') # returns ['244713', '560029']
浏览器
要在浏览器中使用,请下载pincode-regex.js文件并将其包含在您的浏览器中。Pincode作为全局变量可用。
<script src="../pincode-regex.js"></script> <script> Pincode.validate("560029"); // returns true </script>
您可以直接在代码中使用它:https://rawcdn.githack.com/captn3m0/india-pincode-regex/v2.0.0/pincode-regex.js(请确保您使用的是最新版本)。请关注仓库以获取新版本的通知。
行为准则
所有与该项目的代码库、问题跟踪器、聊天室和邮件列表互动的人应遵守行为准则。
贡献
- 有关一些开发细节和贡献指南,请参阅
CONTRIBUTING.md - 欢迎为添加其他语言的库(在同一存储库中)提交拉取请求。Python支持正在进行中,我很乐意有其他语言的支持。
- 该项目旨在成为一个安全、欢迎的协作空间,贡献者应遵守贡献者公约的行为准则。
许可证
遵循MIT许可证。详细信息请参阅LICENSE文件。