كيف يمكنك العثور على كافة عناوين IP في اختيار كتلة من النص مع جافا سكريبت المختصر?

StackOverflow https://stackoverflow.com/questions/72921

سؤال

أنا بدأت للتو في تعلم جافا سكريبت, لذلك أنا لم يكن لديك المهارات اللازمة لمعرفة ما أفترض هو مشكلة تافهة.

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

أريد فقط أن تكون قادرا على تحديد مجموعة من النص على صفحة التعليقات و فوق المختصر (http://bookmarklets.com) في فايرفوكس التي تظهر نافذة إدراج كافة عناوين IP الموجودة في الاختيار.

تحديث:

أنا نوع من الجمع بين الإجابات من levik و يعقوب من أجل التوصل إلى هذا:

javascript:ipAddresses=document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g).join("<br>");newWindow=window.open('', 'IP Addresses in Selection', 'innerWidth=200,innerHeight=300,scrollbars');newWindow.document.write(ipAddresses)

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

شكرا على المساعدة يا رفاق

هل كانت مفيدة؟

المحلول

في فايرفوكس, هل يمكن أن تفعل شيئا مثل هذا:

javascript:alert(
  document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g)
  .join("\n"))

كيف يعمل هذا:

  • يحصل على اختيار النص من المتصفح ("الوثيقة.getSelection()" في FF, في أي أنه سيكون "الوثيقة.اختيار.createRange().النص")
  • ينطبق تعبير عادي إلى آذار / مارس عناوين IP (على النحو الذي اقترحه Muerr) - هذه النتائج في مجموعة من السلاسل.
  • ينضم إلى هذه المجموعة في سلسلة واحدة مفصولة عودة الشخصيات
  • تنبيهات هذه السلسلة

طريقة الحصول على مجموعة مختلفة قليلا على أي ولكن المبدأ هو نفسه.على أن تكون عبر المتصفح, سوف تحتاج إلى التحقق من الأسلوب الذي هو متاح.يمكن أن تفعل أيضا أكثر تعقيدا الانتاج (مثل إنشاء العائمة DIV وإدراج جميع IPs في ذلك).

نصائح أخرى

استخدام التعبير العادي للكشف عن عنوان IP.بعض الأمثلة:

/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/
/^([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+$/

كما المختصر

javascript:document.write(document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g))

مجرد إنشاء مرجعية جديدة ولصق أن جافا سكريبت في

كيف نفعل ذلك في كل مكان

CmdUtils.CreateCommand({
    name: "findip",
    preview: function( pblock ) {
        var msg = 'IP Addresses Found<br/><br/> ';
        ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
        if(ips){
            msg += ips.join("<br/>\n");
        }else{
            msg += 'None';
        }
        pblock.innerHTML = msg;
    },

    execute: function() {
        ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
        if(ips){
            CmdUtils.setSelection(ips.join("<br/>\n"));
        }
    }
})

هنا هو مادة جيدة على الحصول على عنوان IP من الزوار.يمكنك عرض هذا بالإضافة إلى تعليق إذا أردت أو إدراجه كتسمية أو الحقل في الصفحة الخاصة بك حتى تتمكن من الرجوع إليها في وقت لاحق.

إلقاء نظرة على rot13 المختصر على سبيل المثال اختيار النص وأداء العمل (في هذه الحالة استبدال) عندما المختصر النقر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top