swiss-ssn
Version:
Small utility for validating and generating Swiss national identification number.
157 lines (117 loc) • 3.46 kB
Markdown
Swiss National Identification Number (AHV/AVS) or (SSN) validation and generation
===================================
[](https://badge.fury.io/js/swiss-ssn)

A lightweight JavaScript library for validating and generating Swiss National Identification Numbers with:
- Zero dependencies
- Modern ES Module support
- Full test coverage
- TypeScript-friendly JSDoc annotations
- Browser-ready UMD bundle
```bash
npm install swiss-ssn
yarn add swiss-ssn
pnpm add swiss-ssn
```
```js
import SwissSSN from 'swiss-ssn';
// Validate a SSN
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid); // true
// Generate a random valid SSN
const newSSN = SwissSSN.generateSSN();
console.log(newSSN); // e.g., '756.1234.5678.90'
```
```html
<!-- Use the minified UMD bundle -->
<script src="https://unpkg.com/swiss-ssn/dist/swiss-ssn.min.js"></script>
<script>
// The SwissSSN class is available globally
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid); // true
// Generate a random SSN
const newSSN = SwissSSN.generateSSN();
console.log(newSSN);
</script>
```
```html
<!-- Use as ES Module in modern browsers -->
<script type="module">
import SwissSSN from 'https://unpkg.com/swiss-ssn/dist/swiss-ssn.js';
const isValid = SwissSSN.validateSSN('756.9217.0769.85');
console.log(isValid);
</script>
```
Validates a Swiss SSN number.
```js
// Valid SSN examples
SwissSSN.validateSSN('756.9217.0769.85'); // true
SwissSSN.validateSSN('7569217076985'); // true (without dots)
// Invalid SSN examples
SwissSSN.validateSSN('756.9217.0769.84'); // false (wrong check digit)
SwissSSN.validateSSN('756.9217.076'); // false (incomplete)
SwissSSN.validateSSN(''); // false
```
Generates a random valid Swiss SSN.
```js
const ssn = SwissSSN.generateSSN();
// Returns a formatted SSN like '756.9217.0769.85'
```
```bash
npm install
npm test
npm run test:watch
npm run dist
npm run lint
```
Test Online
---------
[](http://teaddict.net/swiss-ssn.html)
- Fixed npm package configuration to include dist files
- Added explicit files field in package.json
- Updated build process to ensure proper file inclusion
- Fixed unpkg CDN availability
- Fixed version number in package.json
- Fixed jest configuration
- Fixed browser compatibility issues with UMD bundle
- Added proper global exports for browser environments
- Improved documentation for browser usage
- Added ES Module example for modern browsers
- Updated build configuration for better browser support
- Modernized codebase with ES Modules
- Added Jest for testing
- Improved test coverage
- Added ESLint with modern config
- Updated all dependencies
- Added TypeScript-friendly JSDoc annotations
- Dependencies upgraded for security fixes
- Initial release
[](LICENSE)
Contributions are welcome! Please feel free to submit a Pull Request.