A lightweight and robust Node.js library for validating and normalizing Sri Lankan phone numbers.
- Validates both mobile and landline Sri Lankan phone numbers
- Normalizes numbers to the international format (
+94XXXXXXXXX
) - Identifies phone number types (mobile or landline)
- Accepts multiple input formats
- Zero dependencies
- Compatible with Node.js v14+
- Available as both CommonJS and ESM
npm install phone-validator-lk
or
yarn add phone-validator-lk
const { validatePhone, normalizePhone, getPhoneType } = require('phone-validator-lk');
import { validatePhone, normalizePhone, getPhoneType } from 'phone-validator-lk';
Validates a phone number and returns an object with validation results.
Parameters:
-
number
(string): The phone number to validate
Returns:
An object with the following properties:
-
isValid
(boolean): Whether the number is a valid Sri Lankan phone number -
normalized
(string|null): The normalized number in international format, or null if invalid -
type
(string|null): 'mobile', 'landline', or null if invalid -
original
(string): The original input
Example:
validatePhone('0712345678');
// {
// isValid: true,
// normalized: '+94712345678',
// type: 'mobile',
// original: '0712345678'
// }
validatePhone('071-234-5678');
// {
// isValid: true,
// normalized: '+94712345678',
// type: 'mobile',
// original: '071-234-5678'
// }
validatePhone('0712345');
// {
// isValid: false,
// normalized: null,
// type: null,
// original: '0712345'
// }
Normalizes a phone number to international format.
Parameters:
-
number
(string): The phone number to normalize
Returns:
- (string|null): The normalized number or null if the number is invalid
Example:
normalizePhone('0712345678'); // '+94712345678'
normalizePhone('071-234-5678'); // '+94712345678'
normalizePhone('invalid'); // null
Determines the type of phone number.
Parameters:
-
number
(string): The phone number to check
Returns:
- (string|null): 'mobile', 'landline', or null if invalid
Example:
getPhoneType('0712345678'); // 'mobile'
getPhoneType('0112345678'); // 'landline'
getPhoneType('invalid'); // null
The library accepts the following phone number formats:
Mobile numbers in Sri Lanka have the format 07X-XXX-XXXX
where X
is a digit.
The package supports the following prefixes: 70, 71, 72, 74, 75, 76, 77, 78.
Examples of valid mobile number formats:
+94712345678
0712345678
94712345678
071-234-5678
071 234 5678
- And more...
Landline numbers in Sri Lanka have the format 0XX-XXX-XXXX
where XX
is the area code.
Examples of valid landline number formats:
+94112345678
0112345678
94112345678
011-234-5678
011 234 5678
- And more...
MIT