تخطي إلى المحتوى

مولد ومتحقق من أرقام الهواتف - أرقام اختبار لأي دولة

توليد أرقام هواتف اختبارية صالحة للولايات المتحدة والمملكة المتحدة والمكسيك والهند. إنشاء أرقام هواتف محمولة أو ثابتة بتنسيق صحيح. أداة مجانية للمطورين لاختبار منطق التحقق.

مولد ومتحقق من أرقام الهواتف

حاسبة التحميل...
📚

التوثيق

لماذا يهم توليد أرقام الهواتف

يمكن أن يكون اختبار منطق التحقق من صحة الهاتف محبطًا. تحتاج إلى أرقام واقعية تتبع الأنماط الخاصة بكل دولة، لكن إنشاء بيانات الاختبار يدويًا مرهق وعرضة للأخطاء. يحل هذه المشكلة هذه الأداة من خلال توليد أرقام هاتف صالحة هيكليًا لعدة دول - مع رموز المناطق، والبادئات المحمولة، والتنسيق الصحيح.

سواء كنت تبني نموذج اتصال، أو تختبر واجهة برمجة تطبيقات الرسائل القصيرة، أو تملأ قاعدة بيانات التطوير، ستحصل على أرقام تطابق التنسيقات الواقعية. تتعامل الأداة مع تعقيد المعايير الدولية (مثل E.164) مع الحفاظ على واجهة بسيطة: اختر دولة، واختر الهاتف المحمول أو الثابت، وقم بالتوليد.

ما الذي يميزها عن مولدات الأرقام العشوائية؟ إنها تحترم القواعد. تحصل أرقام الهواتف المحمولة المكسيكية على رموز المناطق الصحيحة (55 لمدينة المكسيك، 33 لغوادالاخارا). تتجنب أرقام الولايات المتحدة الأنماط غير الصالحة مثل بدء رموز المناطق بـ 0 أو 1. تبدأ أرقام الهواتف المحمولة البريطانية بـ 7. هذه التفاصيل مهمة عند اختبار منطق التحقق من الصحة الذي سيواجهه المستخدمون في الإنتاج.

كيف يعمل مولد أرقام الهواتف

وراء الواجهة البسيطة، يطبق المولد قواعد خاصة بكل دولة لإنشاء أرقام هواتف صالحة:

  1. اختيار الدولة والمنطقة: اختر الدولة والمنطقة المستهدفة. هذا يحدد رمز المنطقة—على سبيل المثال، اختيار "CDMX" في المكسيك يستخدم تلقائيًا رمز المنطقة 55.

  2. منطق نوع الرقم: أرقام الهواتف المحمولة والثابتة تتبع أنماطًا مختلفة. في المملكة المتحدة، تبدأ الهواتف المحمولة بـ 7، بينما تستخدم الهواتف الثابتة رموز جغرافية مثل 20 للندن. يطبق الأداة البادئة الصحيحة بناءً على اختيارك.

  3. توليد الأرقام العشوائية: بالنسبة لأرقام المشتركين، يولد الأداة أرقامًا عشوائية ضمن النطاقات الصالحة. لا تعمل جميع الأرقام في كل مكان—لا يمكن لرموز المناطق في الولايات المتحدة أن تبدأ بـ 0 أو 1، وهناك رموز معينة مخصصة للخدمات.

  4. تطبيق التنسيق: يتم تنسيق الأرقام وفقًا لمعايير E.164 (الدولية) أو العرف المحلي. تظهر الأرقام المكسيكية كـ "+52 55 1234 5678" دوليًا أو "55 1234 5678" محليًا.

  5. التحقق: يتم فحص كل رقم تم إنشاؤه مقابل أنماط التعبير العادي (regex) الخاصة بتلك الدولة. هذا يلتقط الأخطاء الهيكلية قبل عرض الرقم.

ما لن تراه: يتجنب الأداة عمدًا الأرقام الطارئة (مثل 911)، ونطاقات الاختبار، ورموز الخدمات الخاصة. هذا يجعل المخرجات أكثر أمانًا لبيئات الاختبار حيث لا تريد تشغيل الخدمات الفعلية عن طريق الخطأ.

الصيغة والخوارزميات

بينما قد يبدو توليد أرقام الهواتف عملية عشوائية بسيطة، فإن التنفيذ السليم يتطلب فهم القيود والأنماط الرياضية التي تجعل أرقام الهواتف صالحة في مناطق مختلفة.

خوارزمية توليد الأرقام العشوائية

الخوارزمية الأساسية لتوليد رقم هاتف صالح تتبع هذه الصيغة:

N=C+A+P+SN = C + A + P + S

حيث:

  • NN هو رقم الهاتف الكامل
  • CC هو رمز الدولة (اختياري للتنسيق المحلي)
  • AA هو رمز المنطقة/الإقليم
  • PP هو البادئة (التي قد يكون لها قيود بناءً على نوع الرقم)
  • SS هو رقم المشترك (أرقام عشوائية)

خوارزمية التحقق

يمكن التعبير عن التحقق من أرقام الهواتف كعملية مطابقة لنمط التعبير العادي، والتي يمكن تمثيلها رياضياً كالتالي:

1 & \text{إذا كان } N \text{ يطابق } R_c \\ 0 & \text{خلاف ذلك} \end{cases}$$ حيث: - $V(N)$ هو نتيجة التحقق (1 للصالح، 0 للغير صالح) - $N$ هو رقم الهاتف المراد التحقق منه - $R_c$ هو نمط التعبير العادي للدولة $c$ ### الاحتمالية والتوزيع عند توليد أرقام هواتف عشوائية، يجب أن نأخذ في الاعتبار النطاق الصالح للأرقام في كل موضع. على سبيل المثال، في الولايات المتحدة، لا يمكن لرموز المناطق أن تبدأ بـ 0 أو 1، ولا يمكن أن تكون رموز خدمة مثل 911. يمكن حساب عدد أرقام الهواتف الصالحة المحتملة لدولة ما كالتالي: $$P_c = \prod_{i=1}^{n} d_i$$ حيث: - $P_c$ هو العدد الإجمالي لأرقام الهواتف الصالحة المحتملة للدولة $c$ - $n$ هو عدد المواضع في رقم الهاتف (باستثناء رمز الدولة) - $d_i$ هو عدد الأرقام الصالحة للموضع $i$ على سبيل المثال، لأرقام الهواتف الأمريكية (باستثناء رمز الدولة): - الرقم الأول من رمز المنطقة: 8 احتمالات (2-9) - الرقم الثاني والثالث من رمز المنطقة: 10 احتمالات لكل منهما (0-9) - سبعة أرقام للمشترك: 10 احتمالات لكل منها (0-9) $$P_{US} = 8 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 = 8 \times 10^9 = 8,000,000,000$$ هذا يعني أن هناك 8 مليارات رقم هاتف صالح محتمل، على الرغم من أن العديد منها محجوز أو غير مخصص. ## الميزات الرئيسية ### دعم متعدد الدول مع الدقة الإقليمية إنشاء أرقام هاتف لأربعة أسواق رئيسية: - **المكسيك (+52)**: الرموز الإقليمية للمدن مثل مكسيكو سيتي (55)، غوادالاخارا (33)، مونتيري (81)، كانكون (998)، والمزيد - **الولايات المتحدة (+1)**: التنسيق القياسي من 10 أرقام مع رموز المناطق الصالحة - **المملكة المتحدة (+44)**: الرموز الجغرافية للندن (20)، مانشستر (161)، والهواتف المحمولة (7xxx) - **الهند (+91)**: أرقام الهواتف المحمولة من 10 أرقام مع البادئات الصحيحة للشبكات (6/7/8/9) كل منطقة تستخدم رموز المناطق الأصلية. عند اختيار "مكسيكو سيتي"، ستحصل على الرمز 55 - وهو نفس الرمز المستخدم في الأرقام المكسيكية الحقيقية. هذه الدقة مهمة عند اختبار التطبيقات التي تحلل أو تتحقق من الأرقام. ### التبديل بين التنسيق الدولي والمحلي التبديل بين نوعين من التمثيلات القياسية: - **الدولي (E.164)**: +52 55 1234 5678 - يستخدم للواجهات البرمجية، قواعد البيانات، والأنظمة العالمية - **المحلي**: 55 1234 5678 - كيف يرى المستخدمون الأرقام في بلدهم **لماذا هذا مهم**: قد يتلقى تطبيقك أرقامًا بأي من التنسيقين. المستخدمون في المكسيك يكتبون التنسيق المحلي، بينما المستخدمون الدوليون يضيفون رموز الدول. اختبار كلا التنسيقين يضمن معالجة المدخلات الواقعية. ### التمييز بين الهواتف المحمولة والثابتة إنشاء أرقام هواتف محمولة أو ثابتة مع البادئات المناسبة: - **الهواتف المحمولة**: أرقام المملكة المتحدة تبدأ بـ 7، وفقًا للوائح Ofcom - **الهواتف الثابتة**: الرموز الجغرافية المرتبطة بمدن محددة (20 للندن، 11 لدلهي) الفرق تقني، وليس مجرد اختلاف شكلي. الهواتف المحمولة والثابتة تتبع خطط ترقيم مختلفة داخل نفس البلد. منطق التحقق الخاص بك يحتاج إلى التعرف على كليهما. ### النسخ بنقرة واحدة انقر على زر النسخ لإضافة الأرقام المولدة إلى الحافظة فورًا. لا حاجة للتحديد أو التظليل اليدوي - انقر فقط والصق في سكريبتات الاختبار، أو إدراجات SQL، أو حقول النماذج. ## معايير تنسيق أرقام الهاتف ### فهم المعيار E.164: المعيار العالمي يحدد المعيار [E.164](https://www.itu.int/rec/T-REC-E.164/en)، الذي تحافظ عليه الاتحاد الدولي للاتصالات، كيفية عمل أرقام الهواتف عالمياً. تم إنشاؤه في عام 1984 ولا يزال مستخدماً حتى اليوم، ووضع قواعد أساسية: - **الحد الأقصى 15 رقماً** بالكامل (بما في ذلك رمز الدولة) - **بادئة علامة زائد** (+) للتنسيق الدولي - **لا توجد أحرف خاصة** في الرقم نفسه (المسافات والشرطات للعرض فقط) هيكل التنسيق: +[رمز الدولة] [الرقم الوطني] لماذا هذا مهم للمطورين: عند تخزين أرقام الهاتف في قواعد البيانات، استخدم تنسيق E.164. إنه واضح وقابل للتحليل ويعمل مع أي واجهة برمجة تطبيقات للاتصالات. رقم مثل "+15551234567" مفهوم عالمياً، بينما يتطلب "(555) 123-4567" سياقاً لمعرفة أنه رقم أمريكي. [SVG الرسم البياني كما هو - سيتم حفظه دون تغيير] ### التنسيقات الخاصة بالدول #### المكسيك (+52) نظام أرقام الهاتف في المكسيك يتبع هذه الأنماط: - **أرقام الهواتف المحمولة**: 10 أرقام بالكامل - التنسيق: +52 XX XXXX XXXX - مثال: +52 55 1234 5678 - أرقام الهواتف المحمولة في المكسيك عادة ما تبدأ بأكواد المناطق مثل 55 (مكسيكو سيتي)، 33 (غوادالاخارا)، 81 (مونتيري) - **أرقام الهواتف الثابتة**: 8 أرقام (بالإضافة إلى كود المنطقة من رقمين) - التنسيق: +52 XX XXXX XXXX - مثال: +52 55 5123 4567 #### الولايات المتحدة (+1) - **الهواتف المحمولة والثابتة**: 10 أرقام بالكامل - التنسيق: +1 XXX XXX XXXX - أكواد المناطق (أول 3 أرقام) تختلف حسب المنطقة - أرقام الهواتف المحمولة والثابتة تتبع نفس التنسيق لكن لها بوادئ مختلفة #### المملكة المتحدة (+44) - **أرقام الهواتف المحمولة**: عادة ما تبدأ بـ '7' - التنسيق: +44 7XXX XXXXXX - مثال: +44 7700 123456 - **أرقام الهواتف الثابتة**: تختلف حسب المنطقة - التنسيق: +44 XX XXXX XXXX أو +44 XXX XXX XXXX - مثال: +44 20 1234 5678 (لندن) #### الهند (+91) - **أرقام الهواتف المحمولة**: 10 أرقام، عادة ما تبدأ بـ 6 أو 7 أو 8 أو 9 - التنسيق: +91 XXXXX XXXXX - مثال: +91 98765 43210 - **أرقام الهواتف الثابتة**: تختلف حسب المنطقة، عادة 8 أرقام بالإضافة إلى الكود المحلي - التنسيق: +91 XX XXXX XXXX - مثال: +91 11 2345 6789 (دلهي) ## دليل البدء السريع: إنشاء رقمك الاختباري الأول ### التوليد الأساسي (في أقل من 10 ثوانٍ) 1. **اختر دولتك** من القائمة المنسدلة: الولايات المتحدة (+1)، المملكة المتحدة (+44)، المكسيك (+52)، أو الهند (+91) 2. **حدد المنطقة** للحصول على الكود المناسب: - المكسيك: مكسيكو سيتي (55)، غوادالاخارا (33)، مونتيري (81) - الولايات المتحدة: يختلف حسب الولاية - المملكة المتحدة: لندن (20)، مانشستر (161)، أو الهاتف المحمول (7xxx) 3. **التبديل بين الهاتف المحمول أو الأرضي** حسب ما تريد اختباره 4. **اختر الصيغة**: دولية (+كود الدولة) أو محلية 5. **انقر على "توليد"** وانسخ النتيجة ### مثال عملي: اختبار نموذج اتصال مكسيكي لنفترض أنك تبني نموذج تسجيل للمستخدمين المكسيكيين وتحتاج لاختبار التحقق من رقم الهاتف: **لأرقام الهواتف المحمولة في مكسيكو سيتي:** - الدولة: "+52 المكسيك" - المنطقة: "CDMX (مكسيكو سيتي)" - الهاتف المحمول: التبديل للتشغيل - الصيغة: دولية (لاختبار معالجة "+52") - انقر على توليد → النتيجة: "+52 55 8374 2916" **لاختبار الصيغة المحلية:** - احتفظ بنفس الإعدادات، أوقف التبديل الدولي - توليد → النتيجة: "55 8374 2916" الآن لديك صيغتان صالحتان لاختبار كيفية تعامل النموذج معهما. قم بتشغيلهما عبر أداة التحقق الخاصة بك للتأكد من قبولها لكلا النمطين. ## أمثلة التنفيذ يوضح الكود أدناه كيفية إنشاء وتحقق من أرقام الهواتف بلغات مختلفة. توضح هذه الأمثلة المنطق الأساسي - في الإنتاج، يُنصح باستخدام [libphonenumber](https://github.com/google/libphonenumber) للتحقق الشامل. ### JavaScript
1// مثال JavaScript لإنشاء رقم هاتف محمول مكسيكي عشوائي
2function generateMexicanMobileNumber(international = true) {
3  // رمز منطقة مدينة المكسيك
4  const areaCode = "55";
5  
6  // إنشاء 8 أرقام عشوائية للرقم
7  let number = "";
8  for (let i = 0; i < 8; i++) {
9    number += Math.floor(Math.random() * 10);
10  }
11  
12  // تنسيق الرقم
13  const formattedNumber = `${areaCode} ${number.substring(0, 4)} ${number.substring(4, 8)}`;
14  
15  // إضافة رمز الدولة إذا كان التنسيق الدولي مطلوبًا
16  return international ? `+52 ${formattedNumber}` : formattedNumber;
17}
18
19// دالة للتحقق من رقم هاتف مكسيكي
20function validateMexicanPhoneNumber(number) {
21  // نمط التنسيق الدولي
22  const intlPattern = /^\+52 \d{2} \d{4} \d{4}$/;
23  
24  // نمط التنسيق المحلي
25  const localPattern = /^\d{2} \d{4} \d{4}$/;
26  
27  return intlPattern.test(number) || localPattern.test(number);
28}
29
30// مثال على الاستخدام
31const phoneNumber = generateMexicanMobileNumber();
32console.log(phoneNumber); // مثال: +52 55 1234 5678
33console.log(`Is valid: ${validateMexicanPhoneNumber(phoneNumber)}`); // Is valid: true
34

Python

1# مثال Python لإنشاء والتحقق من رقم هاتف
2import random
3import re
4
5def generate_us_phone_number(international=True):
6    """إنشاء رقم هاتف أمريكي عشوائي."""
7    # إنشاء رمز المنطقة (تجنب الرموز مثل 911)
8    area_code = random.randint(200, 999)
9    
10    # إنشاء 7 أرقام عشوائية للرقم
11    prefix = random.randint(200, 999)
12    line = random.randint(1000, 9999)
13    
14    # تنسيق الرقم
15    if international:
16        return f"+1 {area_code} {prefix} {line}"
17    else:
18        return f"({area_code}) {prefix}-{line}"
19        
20def validate_us_phone_number(number):
21    """التحقق مما إذا كان السلسلة تطابق نمط رقم الهاتف الأمريكي."""
22    # نمط التنسيق الدولي
23    intl_pattern = r'^\+1 \d{3} \d{3} \d{4}$'
24    
25    # نمط التنسيق المحلي
26    local_pattern = r'^\(\d{3}\) \d{3}-\d{4}$'
27    
28    return bool(re.match(intl_pattern, number) or re.match(local_pattern, number))
29
30# مثال على الاستخدام
31phone = generate_us_phone_number()
32print(phone)  # مثال: +1 555 123 4567
33print(f"Is valid: {validate_us_phone_number(phone)}")  # Is valid: True
34

Java

1import java.util.Random;
2import java.util.regex.Pattern;
3
4public class PhoneNumberGenerator {
5    private static final Random random = new Random();
6    
7    public static String generateUKMobileNumber(boolean international) {
8        // أرقام الهواتف المحمولة في المملكة المتحدة تبدأ بـ '7'
9        StringBuilder number = new StringBuilder("7");
10        
11        // إنشاء 9 أرقام عشوائية أخرى
12        for (int i = 0; i < 9; i++) {
13            number.append(random.nextInt(10));
14        }
15        
16        // تنسيق الرقم
17        String formatted = number.substring(0, 4) + " " + number.substring(4, 10);
18        
19        // إضافة رمز الدولة إذا كان التنسيق الدولي مطلوبًا
20        return international ? "+44 " + formatted : "0" + formatted;
21    }
22    
23    public static boolean validateUKMobileNumber(String number) {
24        // نمط التنسيق الدولي
25        Pattern intlPattern = Pattern.compile("^\\+44 7\\d{3} \\d{6}$");
26        
27        // نمط التنسيق المحلي
28        Pattern localPattern = Pattern.compile("^07\\d{3} \\d{6}$");
29        
30        return intlPattern.matcher(number).matches() || 
31               localPattern.matcher(number).matches();
32    }
33    
34    public static void main(String[] args) {
35        String phoneNumber = generateUKMobileNumber(true);
36        System.out.println(phoneNumber); // مثال: +44 7123 456789
37        System.out.println("Is valid: " + validateUKMobileNumber(phoneNumber)); // Is valid: true
38    }
39}
40

PHP

1<?php
2// مثال PHP لإنشاء والتحقق من رقم هاتف هندي
3
4function generateIndianMobileNumber($international = true) {
5    // أرقام الهواتف الهندية تبدأ بـ 6 أو 7 أو 8 أو 9
6    $prefixes = [6, 7, 8, 9];
7    $prefix = $prefixes[array_rand($prefixes)];
8    
9    // إنشاء 9 أرقام عشوائية أخرى
10    $number = $prefix;
11    for ($i = 0; $i < 9; $i++) {
12        $number .= rand(0, 9);
13    }
14    
15    // تنسيق الرقم
16    $formatted = substr($number, 0, 5) . " " . substr($number, 5, 5);
17    
18    // إضافة رمز الدولة إذا كان التنسيق الدولي مطلوبًا
19    return $international ? "+91 " . $formatted : $formatted;
20}
21
22function validateIndianMobileNumber($number) {
23    // نمط التنسيق الدولي
24    $intlPattern = '/^\+91 [6-9]\d{4} \d{5}$/';
25    
26    // نمط التنسيق المحلي
27    $localPattern = '/^[6-9]\d{4} \d{5}$/';
28    
29    return preg_match($intlPattern, $number) || preg_match($localPattern, $number);
30}
31
32// مثال على الاستخدام
33$phoneNumber = generateIndianMobileNumber();
34echo $phoneNumber . "\n"; // مثال: +91 98765 43210
35echo "Is valid: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // Is valid: true
36?>
37

C#

1using System;
2using System.Text;
3using System.Text.RegularExpressions;
4
5public class PhoneNumberGenerator
6{
7    private static Random random = new Random();
8    
9    public static string GenerateMexicanMobileNumber(bool international = true)
10    {
11        // رمز منطقة مدينة المكسيك
12        string areaCode = "55";
13        
14        // إنشاء 8 أرقام عشوائية للرقم
15        StringBuilder number = new StringBuilder();
16        for (int i = 0; i < 8; i++)
17        {
18            number.Append(random.Next(10));
19        }
20        
21        // تنسيق الرقم
22        string formattedNumber = $"{areaCode} {number.ToString(0, 4)} {number.ToString(4, 4)}";
23        
24        // إضافة رمز الدولة إذا كان التنسيق الدولي مطلوبًا
25        return international ? $"+52 {formattedNumber}" : formattedNumber;
26    }
27    
28    public static bool ValidateMexicanPhoneNumber(string number)
29    {
30        // نمط التنسيق الدولي
31        Regex intlPattern = new Regex(@"^\+52 \d{2} \d{4} \d{4}$");
32        
33        // نمط التنسيق المحلي
34        Regex localPattern = new Regex(@"^\d{2} \d{4} \d{4}$");
35        
36        return intlPattern.IsMatch(number) || localPattern.IsMatch(number);
37    }
38    
39    public static void Main()
40    {
41        string phoneNumber = GenerateMexicanMobileNumber();
42        Console.WriteLine(phoneNumber); // مثال: +52 55 1234 5678
43        Console.WriteLine($"Is valid: {ValidateMexicanPhoneNumber(phoneNumber)}"); // Is valid: True
44    }
45}
46

الاستخدامات الواقعية لتوليد أرقام الهواتف

اختبار منطق التحقق من صحة النموذج

عند بناء نماذج التسجيل، تحتاج إلى التأكد من أن التحقق يلتقط الأرقام غير الصحيحة دون رفض الأرقام الصالحة. وهذا ما يحدث عادة: يقوم المطورون باختبار الأنماط البسيطة مثل "555-1234" أو "123456789"، والتي لا تكشف عن الحالات الحدية.

سيناريو شائع هو تسجيل المستخدمين الدوليين. قد يقبل نموذجك أرقام الولايات المتحدة بشكل مثالي ولكنه يفشل في أرقام المملكة المتحدة لأنك لم تأخذ في الاعتبار الطول المتغير للرموز الجغرافية. من خلال توليد أرقام خاصة بكل دولة، يمكنك اكتشاف هذه المشكلات قبل أن يبلغ عنها المستخدمون.

نصيحة احترافية: قم بتوليد 50-100 رقم لكل دولة تدعمها وقم بتشغيلها عبر المتحقق الخاص بك. ستجد بسرعة الثغرات في أنماط التعبيرات العادية الخاصة بك.

ملء قواعد البيانات التطويرية

من خلال خبرتي في العمل مع مجموعات البيانات الكبيرة، يحدث فرق كبير في اكتشاف أخطاء واجهة المستخدم باستخدام بيانات اختبار واقعية. عندما يحتوي جدول العملاء لديك على 10,000 إدخال تعرض جميعها "555-5555"، لن تلاحظ أن أعمدة الهاتف ليست عريضة بما يكفي للتنسيق الدولي "+44 7700 123456".

ما يعمل بشكل جيد: توليد أرقام متنوعة (دول مختلفة، مزيج من الهواتف المحمولة والثابتة) تتطابق مع توزيع الإنتاج الخاص بك. إذا كان 70٪ من المستخدمين في المكسيك، فاجعل 70٪ من بيانات الاختبار الخاصة بك أرقام مكسيكية. هذا يكشف مشاكل العرض، ومشاكل الفرز، وأخطاء تنسيق التصدير التي كنت ستفوتها.

اختبار تكامل واجهة برمجة التطبيقات

يتطلب اختبار واجهات برمجة التطبيقات للرسائل النصية أو المكالمات الصوتية أرقام هواتف، لكن لا يمكنك استخدام بيانات العملاء الفعلية في التطوير. توفر مزودو الخدمات مثل Twilio أرقام اختبار، لكنها محدودة. للاختبار الشامل - خاصة تحديد المعدل، والمعالجة الدفعية، والتعامل مع الأخطاء - تحتاج إلى كمية كبيرة.

خطأ شائع: الاختبار فقط برقم هاتفك الخاص. هذا لن يكشف المشكلات المتعلقة بالتنسيقات المختلفة أو الأرقام الدولية. قم بتوليد مجموعة من الأرقام المتطابقة مع الأسواق المستهدفة، وستكتشف أخطاء التنسيق قبل وصولها إلى الإنتاج.

البيئات التعليمية والتوضيحية

عند تدريب الموظفين على أنظمة إدارة علاقات العملاء أو عرض البرامج على العملاء، تحتاج إلى بيانات تبدو حقيقية دون كشف معلومات العملاء الفعلية. الأرقام العشوائية مثل "1234567890" تبدو مزيفة وتقلل من المصداقية.

ما وجدته مفيدًا: قم بتوليد مجموعات بيانات اختبار كاملة بأسماء وعناوين وأرقام هواتف مُنسقة بشكل صحيح للمناطق التي تقوم بعرضها. هذا يجعل التدريب أكثر فعالية لأنه يعكس ما سيراه المستخدمون في الإنتاج.

المقارنة مع الحلول البديلة

مكتبة Google's libphonenumber

بالنسبة للتحقق في بيئة الإنتاج، تعتبر مكتبة Google's libphonenumber المعيار الذهبي. فهي تتعامل مع أكثر من 200 دولة، وتتحقق من الأرقام مقابل بيانات الشبكات الفعلية، وتحلل الأرقام بتنسيقات مختلفة. ومع ذلك، فهي مصممة للتحقق وليس للإنشاء.

متى تستخدم libphonenumber: عندما تحتاج إلى التحقق من إدخال المستخدم الحقيقي في بيئة الإنتاج. فهي تكشف عن المشكلات مثل رموز المناطق غير الصالحة ونطاقات الأرقام المقطوعة.

متى تستخدم هذه الأداة: عندما تحتاج إلى بيانات اختبار بسرعة دون إعداد مكتبة. أداتنا تولد البيانات في ثوانٍ؛ بينما دمج libphonenumber يستغرق ساعات.

مكتبات Faker وأدوات توليد البيانات

أدوات مثل Faker.js أو مكتبة Faker الخاصة بـ Python تولد أرقام الهواتف جنبًا إلى جنب مع الأسماء والعناوين وبيانات وهمية أخرى. وهي ممتازة لإنشاء ملفات تعريف مستخدم كاملة.

القيود: معظم مكتبات Faker تولد أرقامًا تبدو صالحة لكنها قد لا تتبع جميع القواعد الخاصة بالدولة. على سبيل المثال، قد تنشئ أرقام المملكة المتحدة التي تبدأ بـ 8 (وهي ليست بادئات صالحة للهواتف المحمولة).

ميزة هذه الأداة: نحن نركز بشكل محدد على قواعد أرقام الهواتف، مما يضمن توليد أرقام تتبع الأنماط الخاصة بكل دولة بدقة.

أرقام الاختبار الخاصة بمزودي الاتصالات

يقدم مزودو الخدمات مثل Twilio و Vonage أرقام اختبار للهواتف لتطوير واجهات برمجة التطبيقات. هذه أرقام عاملة فعلية لا ترسل رسائل أو تجري مكالمات.

متى تستخدم أرقام الاختبار الخاصة بالمزودين: للاختبار الشامل حيث تحتاج إلى التحقق من تسليم الرسائل أو اكتمال المكالمات.

متى تستخدم هذه الأداة: للاختبارات الوحدوية، واختبار واجهة المستخدم، وملء قواعد البيانات حيث تحتاج إلى كمية وتنوع دون حدود معدل API أو تكاليف.

تاريخ تنسيقات وأنظمة أرقام الهواتف

تطور تنسيقات وأنظمة أرقام الهواتف مرتبط بشكل وثيق بتطوير تكنولوجيا الاتصالات والبنية التحتية حول العالم.

الأنظمة الهاتفية المبكرة (1870-1950)

عندما تم تقديم الأنظمة الهاتفية لأول مرة في أواخر القرن التاسع عشر، كانت أرقام الهواتف قصيرة جدًا، غالبًا ما تكون 2-4 أرقام، حيث كان لكل مدينة أو بلدة مقسم هاتفي مستقل. كان المشغلون يوصلون المكالمات يدويًا عن طريق توصيل الأسلاك في لوحات التبديل.

مع نمو الشبكات الهاتفية، أصبحت الأرقام أطول وتم إدخال رموز المناطق. تم إنشاء الخطة الأمريكية الشمالية للترقيم (NANP) في عام 1947 لإنشاء نظام موحد عبر الولايات المتحدة وكندا، مما أدخل التنسيق المألوف 3-3-4 (رمز المنطقة، رمز التبادل، رقم المشترك).

تطوير المعايير الدولية (1960-1980)

بدأت الاتحاد الدولي للاتصالات (ITU)، الذي تأسس في عام 1865 كاتحاد التلغراف الدولي، بتطوير المعايير الدولية لترقيم الهواتف في الستينيات. أدى ذلك إلى إنشاء رموز الدول وتوحيد إجراءات الاتصال الدولي.

في عام 1964، قدم الاتحاد التوصية E.163، التي أسست الخطة الدولية لترقيم الهواتف. تم استبدال ذلك لاحقًا بالتوصية E.164 في عام 1984، والتي لا تزال المعيار الحالي للترقيم العام للاتصالات.

الثورة المحمولة (1990-2000)

أدى الانتشار الواسع للهواتف المحمولة في التسعينيات والألفينيات إلى خلق تحديات جديدة لأنظمة الترقيم. قامت العديد من البلدان بإدخال بادئات محددة أو نطاقات أرقام كاملة مخصصة للهواتف المحمولة. على سبيل المثال، في المملكة المتحدة، تبدأ أرقام الهواتف المحمولة عادة بـ '07'، بينما في المكسيك، حافظت أرقام الهواتف المحمولة على نفس التنسيق الخاص بالهواتف الأرضية ولكن مع رموز مناطق مختلفة.

المعايير الحديثة وعصر الاتصالات عبر الإنترنت (2000-الحاضر)

مع صعود الاتصالات الصوتية عبر بروتوكول الإنترنت (VoIP) والتواصل القائم على الإنترنت، أصبحت تنسيقات أرقام الهواتف أكثر مرونة. تم تكييف المعيار E.164 ليستوعب هذه التكنولوجيات الجديدة، وقامت العديد من البلدان بمراجعة خطط الترقيم الخاصة بها لإنشاء مزيد من السعة.

أدى إدخال قابلية نقل الأرقام في العديد من البلدان إلى طمس الفرق بين الأرقام المحمولة والأرضية، حيث يمكن للمستخدمين الآن الاحتفاظ بأرقامهم عند التبديل بين أنواع الخدمات.

اليوم، لا تزال تنسيقات أرقام الهواتف في تطور مستمر، مع اعتبار بعض البلدان إلغاء رموز المناطق أو دمج أرقام الهواتف مع الهويات الرقمية. ومع ذلك، لا يزال الهيكل الأساسي الذي وضعه E.164 يمثل أساس الترقيم العالمي للاتصالات.

الأسئلة الشائعة

كيف أقوم بإنشاء رقم هاتف عشوائي للاختبار؟

حدد البلد والمنطقة المستهدفة من القوائم المنسدلة، وقم بتبديل الإعدادات بين الهاتف المحمول أو الهاتف الثابت، وانقر على "إنشاء رقم هاتف". يقوم الأداة بإنشاء رقم صالح هيكلياً وفقاً لقواعد التنسيق الخاصة بالبلد. يمكنك التبديل بين التنسيق الدولي (مع رمز البلد) والتنسيق المحلي.

لاختبار سيناريوهات متعددة، قم بإنشاء عدة أرقام بإعدادات مختلفة - وهذا يساعد في اكتشاف أخطاء التحقق التي تظهر فقط مع تنسيقات محددة.

هل هذه أرقام هاتف حقيقية يمكن استقبال المكالمات أو الرسائل؟

لا. الأرقام المولدة تتبع أنماط التنسيق الصحيحة ولكنها تم إنشاؤها عشوائياً ولم يتم تخصيصها لمشتركين فعليين. تم تصميمها لاختبار منطق التحقق، وملء قواعد البيانات، وعرض البرامج - وليس للاتصالات الفعلية.

مهم: لا تحاول أبداً إجراء مكالمات أو إرسال رسائل نصية باستخدام هذه الأرقام. قد تكون مملوكة لأشخاص حقيقيين أو غير مخصصة.

ما الفرق بين التنسيق الدولي والمحلي لأرقام الهاتف؟

التنسيق الدولي يتضمن رمز البلد مع علامة زائد: +52 55 1234 5678 (المكسيك). هذا هو المعيار E.164 المستخدم في الاتصالات العالمية.

التنسيق المحلي يظهر كيفية الاتصال داخل البلد: 55 1234 5678 (المكسيك). يتم حذف رمز البلد لأن المكالمات المحلية لا تتطلبه.

عند اختبار التطبيقات التي تخدم المستخدمين الدوليين، تحقق من كلا التنسيقين. يدخل المستخدمون الأرقام بشكل غير متسق - بعضهم يلصق "+1 555...", والبعض الآخر يكتب "(555)...". يجب أن يتعامل المحقق القوي مع كليهما.

لماذا تختلف تنسيقات أرقام الهاتف بين الدول؟

طورت كل دولة خطة ترقيمها بشكل مستقل، متأثرة بحجم السكان والتقسيمات الجغرافية والوقت الذي بنت فيه بنيتها التحتية للهاتف. تبنت الولايات المتحدة الخطة الترقيمية لأمريكا الشمالية في عام 1947 مع نمط 3-3-4 أرقام. تستخدم المملكة المتحدة رموز جغرافية ذات أطوال متغيرة. وحدت الهند أرقام الهواتف المحمولة بـ 10 أرقام لاستيعاب سكانها الهائل.

يوفر معيار الاتحاد الدولي للاتصالات E.164 إطارًا، لكن الدول تنفذه بشكل مختلف وفقًا لاحتياجاتها. هذا هو سبب تعقيد التحقق من أرقام الهاتف - لا يمكنك استخدام نمط تعبير عادي واحد لجميع البلدان.

هل يمكنني استخدام أرقام الهاتف المولدة في تطبيقي الإنتاجي؟

استخدمها للتطوير والاختبار فقط. لا تخزنها كبيانات مستخدم فعلية في قواعد البيانات الإنتاجية. وإليك السبب:

  • قد تتطابق صدفة مع أرقام مخصصة فعلية
  • لن تتلقى رموز التحقق أو المكالمات
  • سيشعر المستخدمون بالارتباك إذا رأوا هذه الأرقام في ملفات التعريف الخاصة بهم

للاختبار الإنتاجي (مثل بيئات المرحلة)، استخدم أرقام اختبار مخصصة من مزود خدمة الرسائل القصيرة أو الصوت.

كيف يعمل التحقق من أرقام الهاتف؟

يتحقق التحقق من الصحة الهيكلية باستخدام القواعد الخاصة بكل بلد:

  1. التحقق من الطول: يجب أن تكون أرقام الولايات المتحدة 10 أرقام، والهواتف المحمولة البريطانية 10-11 رقمًا
  2. فحص البادئة: تبدأ الهواتف المحمولة البريطانية بـ 7، والهواتف المحمولة المكسيكية تستخدم رموز مناطق محددة
  3. مطابقة النمط: تضمن أنماط التعبير العادية التجميع والتنسيق الصحيح

ما لا يفعله التحقق: التأكد من أن الرقم قيد الخدمة حاليًا، أو تحديد مزود الخدمة، أو التحقق مما إذا كان يمكن استقبال الرسائل. لذلك، تحتاج إلى خدمات مثل Twilio Lookup API أو دمج libphonenumber.

هل يحفظ هذا الأداة أو يخزن أرقام الهاتف التي أولدها؟

لا. يتم كل إنشاء في متصفحك. لا يتم إرسال أي شيء إلى خادم أو تخزينه في أي مكان. عند توليد رقم، يوجد فقط في جلستك الحالية. أعد تحميل الصفحة وسيختفي.

هذا يجعل الأداة آمنة للعمل مع بيانات الاختبار في البيئات الآمنة حيث لا يمكنك إرسال معلومات خارجيًا.

كيف أقوم بالتحقق من أرقام الهاتف في الكود الخاص بي؟

توضح أمثلة التنفيذ أعلاه أنماط التحقق للغات المختلفة. النهج الأساسي:

  1. حدد أنماط التعبير العادية لكل بلد تدعمه
  2. قم بتنميط الإدخال (إزالة المسافات والأقواس والشرطات)
  3. تحقق مما إذا كان الرقم المنظف يطابق أنماطك
  4. فكر في استخدام libphonenumber للإنتاج - فهو يتعامل مع الحالات الحدية بشكل أفضل من التعبير العادي المخصص

الخطأ الشائع: التحقق من التنسيق دون تنميط الإدخال أولاً. يدخل المستخدمون "+1 (555) 123-4567" و"1-555-123-4567" و"15551234567" متوقعين أن تعمل جميعها. يجب أن يتعامل المحقق الخاص بك مع جميع المتغيرات.

المراجع

  1. الاتحاد الدولي للاتصالات (ITU). "E.164: الخطة الدولية للترقيم العام للاتصالات العامة." ITU

  2. إدارة خطة الترقيم الشمالية الأمريكية. "حول خطة الترقيم الشمالية الأمريكية." NANPA

  3. هيئة الاتصالات (المملكة المتحدة). "أرقام الهاتف - الخطة الوطنية للترقيم الهاتفي." Ofcom

  4. وزارة الاتصالات، حكومة الهند. "الخطة الوطنية للترقيم." DoT الهند

  5. المعهد الفيدرالي للاتصالات (المكسيك). "الخطة الوطنية للترقيم." IFT المكسيك

  6. مكتبة Google للأرقام الهاتفية. "تحليل وتنسيق والتحقق من الأرقام الهاتفية." مستودع GitHub

  7. الدليل العالمي لأرقام الهاتف. "رموز الاتصال الدولية والمعلومات." WTNG

ابدأ بإنشاء أرقام هواتف اختبارية

هل تحتاج إلى أرقام هواتف صالحة للجلسة الاختبارية القادمة؟ اختر بلدك، وحدد الهاتف المحمول أو الهاتف الثابت، وأنشئ أرقامًا منسقة بشكل صحيح تتبع الأنماط الواقعية. يتعامل الأداة مع تعقيد المعايير الدولية مع الحفاظ على واجهة بسيطة - لا حسابات، لا مفاتيح API، فقط نتائج فورية.

مثالي للمطورين الذين يختبرون منطق التحقق، وفرق ضمان الجودة التي تملأ بيئات الاختبار، أو أي شخص يحتاج إلى أمثلة واقعية لأرقام الهواتف.