تحقق من ISBN-10 وISBN-13 وحولهما
قد يبدو رقم ISBN صحيحا رغم احتوائه على رقم كتب خطأ، كما أن الانتقال بين صيغتي العشرة أرقام والثلاثة عشر رقما يتطلب أكثر من إضافة بادئة أو حذفها.
شغّل الأداة مجانًا
توحد هذه الأداة المسافات والواصلات المعتادة، وتحدد الصيغة بحسب الطول، وتتحقق من رقم التدقيق كاملا، ثم تعيد قيمتي ISBN-10 وISBN-13 بصيغة قياسية. وهي ترفض المعرفات سيئة التكوين وأرقام التدقيق غير المطابقة بدلا من إنشاء تحويل يبدو معقولا لكنه غير مأمون. الحساب حتمي ولا يستخدم الشبكة، ويناسب الفهارس وعمليات الاستيراد وأنظمة النشر ومخزون الكتب.
تحقق قبل الحفظ أو التحويل
رقم ISBN معرف يتضمن رقم تدقيق محسوبا رياضيا، وليس دليلا على وجود كتاب بعينه. تزيل الأداة أولا المسافات والواصلات المعتادة، ثم تطبق قاعدة التدقيق الموافقة للطول المكتشف. في ISBN-10 تستخدم الخانات العشر أوزانا تنازلية من عشرة إلى واحد، وقد يكون الحرف الأخير X ليمثل القيمة عشرة. وفي ISBN-13 تحدد أوزان متناوبة من واحد وثلاثة الرقم العشري الأخير. يؤدي أي اختلاف إلى خطأ في الإدخال، ولذلك لا تتلقى الأنظمة اللاحقة تحويلا مشتقا من مصدر كتب على نحو خاطئ. تفيد هذه الحماية خصوصا في الاستيراد الجماعي، إذ قد يؤدي قبول رقم خاطئ بصمت إلى إنشاء سجلات فهرسة مكررة أو ربط المخزون بطبعة غير صحيحة. يؤكد حقل الصلاحية نجاح الحساب، بينما يوضح تنسيق الإدخال القاعدة التي طبقت. تعاد القيمتان كسلسلتين قياسيتين بلا واصلات، فتصلحان للمقارنة والفهرسة والإرسال إلى نظام آخر من دون الاحتفاظ بعلامات ترقيم غير متسقة من القيمة المدخلة.
افهم آلية التحويل
يبدأ التحويل من ISBN-10 إلى ISBN-13 بأخذ الأرقام التسعة الأولى، وحذف رمز التدقيق القديم، وإضافة بادئة الكتب 978، ثم حساب رقم تدقيق جديد لصيغة ISBN-13. أما الاتجاه العكسي فهو متاح لقيم ISBN-13 التي تبدأ بـ978: تحذف البادئة ورقم التدقيق الثالث عشر، ثم يعاد حساب تدقيق ISBN-10 من الأرقام التسعة المتبقية. وقد يكون رمز التدقيق الجديد رقما عشريا أو X. لذلك لا يصح إجراء التحويل بمجرد قص النص أو نسخ رقم التدقيق الموجود. أرقام ISBN-13 التي تبدأ بـ979 صحيحة، لكنها لا تملك مقابلا في ISBN-10. تتحقق الأداة من الرقم أولا ثم تعيد خطأ إدخال واضحا لأنها لا تستطيع تقديم الصيغتين بصدق. ولا تخترع قيمة من عشرة أرقام، ولا تستبدل 979 بـ978، ولا تصف تحويلا يفقد المعلومات بأنه تحويل صحيح. يحافظ هذا الفرق على سلامة المعرفات عند التعامل مع نطاقات النشر الأحدث.
استخدم النتيجة ضمن إجراءات موثوقة
أرسل الحقل isbn كنص. تقبل الأشكال المطبوعة مثل 0-306-40615-2 و978 0 306 40615 7 لأن المسافات والواصلات عناصر تنسيق فقط. وترفض الحروف الأخرى وعلامات الترقيم والأطوال الخاطئة والحرف X في موضع غير صحيح وبادئات EAN غير الخاصة بالكتب وأرقام التدقيق غير المطابقة. عند النجاح، احفظ الحقلين isbn10 وisbn13 المعادين بدلا من إعادة بنائهما في تطبيقك. ويمكنك أيضا الاحتفاظ بتنسيق الإدخال إذا كان مهما معرفة ما إذا كان المورد قد قدم الصيغة القديمة أم الحديثة. لا تبحث هذه القدرة عن العنوان أو المؤلف أو الطبعة أو الملكية أو التوفر؛ فصلاحية رقم التدقيق تثبت الاتساق الداخلي فقط. استخدم معها مصدرا ببليوغرافيا موثوقا إذا وجب تأكيد هوية الكتاب أيضا. ولأن الخوارزمية حساب خالص بلا طلب شبكي، تعطي المدخلة نفسها النتيجة نفسها دائما. يناسب المتصفح الفحوص الفردية، بينما تبلغ كلفة API مقدار $0.002 لكل طلب وتلائم التحقق عند الإدخال قبل وصول السجلات إلى قاعدة بيانات أو فهرس بحث أو عملية تنفيذ أو تقرير.
حالات الاستخدام
نظف استيراد فهرس الناشر
ارفض المعرفات المكتوبة خطأ واحفظ حقلي ISBN-10 وISBN-13 موحدين قبل إدخال الصفوف في قاعدة البيانات.
وحد عروض السوق الإلكترونية
حول أرقام ISBN التي يقدمها البائعون إلى قيم قياسية بلا واصلات كي تقارن من دون اختلافات التنسيق.
افحص معرف كتاب مطبوع
ألصق ISBN من الغلاف أو صفحة حقوق النشر لاكتشاف أخطاء النسخ والحصول على الصيغة المقابلة.
الأسئلة الشائعة
ما كلفة هذه القدرة؟
تبلغ كلفة كل طلب API مقدار $0.002. ويمكنك أيضا استخدام واجهة المتصفح لإجراء فحص فردي.
هل يثبت رقم التدقيق الصحيح وجود الكتاب؟
لا. فهو يثبت فقط أن بنية المعرف صحيحة وأن رقم التدقيق مطابق، ولا تجري الأداة أي استعلام في فهرس.
هل تقبل المسافات والواصلات؟
نعم. تزال المسافات والواصلات المعتادة قبل التحقق، ولا تحتوي المعرفات المعادة على فواصل.
لماذا لا يمكن تحويل ISBN-13 صحيح يبدأ بـ979؟
يوجد مقابل ISBN-10 فقط لنطاق ISBN-13 الذي يبدأ بـ978. ولا يملك معرف 979 تمثيلا صحيحا من عشرة أرقام.
هل يمكن أن يظهر X في ISBN؟
نعم، ولكن بوصفه رمز التدقيق الأخير في ISBN-10 فقط، حيث يمثل القيمة عشرة. أما ISBN-13 فيستخدم الأرقام وحدها.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/data/isbn-validate-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"isbn":"0-306-40615-2"}'const res = await fetch("https://api.kit.forhosting.com/data/isbn-validate-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"isbn": "0-306-40615-2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/isbn-validate-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"isbn": "0-306-40615-2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/isbn-validate-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"isbn":"0-306-40615-2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"isbn":"0-306-40615-2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/isbn-validate-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"isbn": "0-306-40615-2"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.isbn_validate_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |