Skip to main content

Overview

LocalRegex provides validation for Voice over IP (VoIP) phone numbers from all major Zimbabwe internet telephony providers. VoIP numbers in Zimbabwe typically start with 86 followed by provider-specific codes.

VoIP Provider Methods

isAfricom()

Validates Africom VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Africom number, false otherwise Pattern: Numbers starting with 8644 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isAfricom('0864412345');     // true
LocalRegex.isAfricom('263864412345');   // true
LocalRegex.isAfricom('+263864412345');  // true
LocalRegex.isAfricom('0771234567');     // false

isDandemutande()

Validates Dandemutande VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Dandemutande number, false otherwise Pattern: Numbers starting with 8612 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isDandemutande('0861212345');     // true
LocalRegex.isDandemutande('263861212345');   // true
LocalRegex.isDandemutande('+263861212345');  // true
Dandemutande is a Zimbabwe-based VoIP telecommunications provider offering internet telephony services.

isLiquid()

Validates Liquid Telecom VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Liquid number, false otherwise Pattern: Numbers starting with 8677 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isLiquid('0867712345');     // true
LocalRegex.isLiquid('263867712345');   // true
LocalRegex.isLiquid('+263867712345');  // true
Liquid Telecom (now Liquid Intelligent Technologies) is one of Africa’s largest independent data, voice, and IP providers.

isPowertel()

Validates Powertel VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Powertel number, false otherwise Pattern: Numbers starting with 8611 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isPowertel('0861112345');     // true
LocalRegex.isPowertel('263861112345');   // true
LocalRegex.isPowertel('+263861112345');  // true
Powertel is a telecommunications division of ZESA (Zimbabwe Electricity Supply Authority), Zimbabwe’s national power utility.

isTelco()

Validates Telco VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Telco number, false otherwise Pattern: Numbers starting with 8683 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isTelco('0868312345');     // true
LocalRegex.isTelco('263868312345');   // true
LocalRegex.isTelco('+263868312345');  // true

isTelone()

Validates TelOne VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid TelOne VoIP number, false otherwise Pattern: Numbers starting with 8688 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isTelone('0868812345');     // true
LocalRegex.isTelone('263868812345');   // true
LocalRegex.isTelone('+263868812345');  // true
This validates TelOne’s VoIP numbers. For landline validation, see isZimLandline() in the Mobile Numbers section.

isZarnet()

Validates Zarnet VoIP numbers.
value
String
required
The VoIP number to validate
Returns: bool - true if valid Zarnet number, false otherwise Pattern: Numbers starting with 8622 (with optional +263 or 0 prefix)
Usage Example
LocalRegex.isZarnet('0862212345');     // true
LocalRegex.isZarnet('263862212345');   // true
LocalRegex.isZarnet('+263862212345');  // true
Zarnet is a Zimbabwe VoIP telecommunications provider.

Combined VoIP Validation

isZimVoip()

Validates if a number belongs to any Zimbabwe VoIP provider.
voipNumber
String
required
The VoIP number to validate
Returns: bool - true if valid Zimbabwe VoIP number from any provider, false otherwise Implementation:
static bool isZimVoip(String voipNumber) =>
    isAfricom(voipNumber) ||
    isDandemutande(voipNumber) ||
    isLiquid(voipNumber) ||
    isPowertel(voipNumber) ||
    isTelco(voipNumber) ||
    isTelone(voipNumber) ||
    isZarnet(voipNumber);

Usage Example

// Accepts any Zimbabwe VoIP provider
if (LocalRegex.isZimVoip('0868812345')) {
  print('Valid Zimbabwe VoIP number');
}

LocalRegex.isZimVoip('0864412345');  // true (Africom)
LocalRegex.isZimVoip('0861212345');  // true (Dandemutande)
LocalRegex.isZimVoip('0867712345');  // true (Liquid)
LocalRegex.isZimVoip('0861112345');  // true (Powertel)
LocalRegex.isZimVoip('0868312345');  // true (Telco)
LocalRegex.isZimVoip('0868812345');  // true (TelOne)
LocalRegex.isZimVoip('0862212345');  // true (Zarnet)
LocalRegex.isZimVoip('0771234567');  // false (Mobile)

VoIP Provider Codes

Africom

Prefix: 8644VoIP telephony provider

Dandemutande

Prefix: 8612Internet telephony services

Liquid

Prefix: 8677Major African data & voice provider

Powertel

Prefix: 8611ZESA telecommunications division

Telco

Prefix: 8683VoIP services

TelOne VoIP

Prefix: 8688Internet telephony (separate from landlines)

Zarnet

Prefix: 8622VoIP provider

Pattern Structure

All Zimbabwe VoIP numbers follow this structure:
1

Country Code (Optional)

+263 or 263 or 0
2

VoIP Identifier

86 (indicates VoIP service)
3

Provider Code

2 digits identifying the specific provider:
  • 44 - Africom
  • 12 - Dandemutande
  • 77 - Liquid
  • 11 - Powertel
  • 83 - Telco
  • 88 - TelOne
  • 22 - Zarnet
4

Subscriber Number

6 additional digits
Total Length: 10 digits (without country code) or 13 digits (with +263)

Complete Example

import 'package:localregex/localregex.dart';

void validateVoipNumber(String number) {
  // Check specific provider
  if (LocalRegex.isLiquid(number)) {
    print('Liquid VoIP number');
  } else if (LocalRegex.isPowertel(number)) {
    print('Powertel VoIP number');
  } else if (LocalRegex.isTelone(number)) {
    print('TelOne VoIP number');
  } else if (LocalRegex.isAfricom(number)) {
    print('Africom VoIP number');
  } else if (LocalRegex.isDandemutande(number)) {
    print('Dandemutande VoIP number');
  } else if (LocalRegex.isTelco(number)) {
    print('Telco VoIP number');
  } else if (LocalRegex.isZarnet(number)) {
    print('Zarnet VoIP number');
  }
  
  // Or check if it's any Zimbabwe VoIP
  if (LocalRegex.isZimVoip(number)) {
    print('Valid Zimbabwe VoIP number');
  } else {
    print('Not a Zimbabwe VoIP number');
  }
}

// Example usage
void main() {
  final numbers = [
    '0864412345',  // Africom
    '0867712345',  // Liquid
    '0868812345',  // TelOne VoIP
    '0771234567',  // Mobile (not VoIP)
  ];
  
  for (final number in numbers) {
    validateVoipNumber(number);
  }
}

Best Practices

Use Specific Validators: When you know the expected VoIP provider, use the specific validation method (e.g., isLiquid()) for stricter validation.
Flexible Input: All VoIP validation methods accept numbers with or without country code prefixes (0, 263, +263).
VoIP vs Landline: TelOne has both landline numbers (validated by isZimLandline()) and VoIP numbers (validated by isTelone()). Make sure to use the correct validator based on the number type.

Quick Reference Table

ProviderPrefixMethodExample
Africom8644isAfricom()0864412345
Dandemutande8612isDandemutande()0861212345
Liquid8677isLiquid()0867712345
Powertel8611isPowertel()0861112345
Telco8683isTelco()0868312345
TelOne8688isTelone()0868812345
Zarnet8622isZarnet()0862212345
Any VoIP86xxisZimVoip()Any of above

Build docs developers (and LLMs) love