egyptian-id-validator
Version:
Validate and parse Egyptian National ID numbers (Node.js)
124 lines (79 loc) โข 4.14 kB
Markdown
# Egyptian ID Validator (JavaScript / Node.js)
[](https://www.npmjs.com/package/egyptian-id-validator)
[](https://github.com/MohamedAAbdallah/Egyptian-ID-Validator-Npm/releases)
[](https://www.codefactor.io/repository/github/mohamedaabdallah/egyptian-id-validator-npm)
[](https://github.com/MohamedAAbdallah/Egyptian-ID-Validator-Npm/commits/main)
[](https://github.com/MohamedAAbdallah/Egyptian-ID-Validator-Npm/issues)
[](LICENSE.md)
**Egyptian ID Validator** is a production-ready JavaScript module for validating and parsing Egyptian national ID numbers.
It enforces the official structural rules defined by the Egyptian Ministry of Interior, including a verified but undisclosed checksum mechanism.
> โน๏ธ This package is part of a broader multi-language validation system.
> For other implementations (e.g., Python, Java), see the [Egyptian-ID-Validator](https://github.com/MohamedAAbdallah/Egyptian-ID-Validator) mother repository.
## ๐ Features
- โ
**Format Validation** โ Ensures the ID is 14 digits and correctly structured.
- โ
**Checksum Validation** โ Verifies integrity using an official checksum method.
- โ
**Component Extraction** โ Parses the ID into:
- Year, Month, and Day of Birth
- Governorate Name and Code
- Gender (Male/Female)
## ๐ฆ Installation
Install via npm:
```bash
npm install egyptian-id-validator
````
> Requires Node.js โฅ 14
## ๐ Quick Usage
```js
import { validate } from "egyptian-id-validator";
const id = "29805150102054"; // Replace with your ID
const result = validate(id);
if (result) {
console.log("โ
Valid ID");
console.log(result); // { valid: true, year, month, day, governorate, gender }
} else {
console.log("โ Invalid ID");
}
```
You can also use this in CommonJS projects:
```js
const { validate } = require("egyptian-id-validator");
```
## ๐ Project Status
This package is **stable** and actively maintained.
It is being used in production environments and adheres strictly to the official Egyptian national ID structure, including a private and verified checksum algorithm.
> ๐ The checksum logic is intentionally obfuscated to comply with national data validation practices and prevent misuse.
## ๐ค Contributing
We welcome contributions to improve or extend this project.
### ๐ Bug Reports
Please submit detailed reports via [GitHub Issues](https://github.com/MohamedAAbdallah/Egyptian-ID-Validator-Npm/issues), including:
* Clear title and description
* ID sample (if safe to share)
* Expected vs. actual result
### ๐ก Feature Requests
Open an issue to suggest enhancements that support practical developer needs, especially around usability, edge cases, or new environments.
### ๐งช Code Contributions
1. Fork this repository
2. Create a branch: `git checkout -b feature/your-feature`
3. Make your changes with tests
4. Run `npm test` and lint if needed
5. Commit and push: `git commit -m "Describe feature"` โ `git push origin feature/your-feature`
6. Open a Pull Request to `main`
## ๐ License
This project is licensed under a **custom MIT-based license with commercial use restrictions**.
You **may**:
* Use the package in personal or commercial apps
* Modify and extend it with proper attribution
You **may not**:
* Resell, redistribute, or package this code as a core business product without explicit written permission
See [LICENSE.md](LICENSE.md) for full terms.
## ๐ค Author
**Mohamed A. Abdallah**
[GitHub](https://github.com/MohamedAAbdallah) ยท [Email](mailto:eng.mohamed.a.abdallah@gmail.com)