मैं लंबे दृश्यमान तारों का पता लगाना चाहता हूं जो यादृच्छिक HTML तत्वों के भीतर हैं, उदा। कुछ यूआरएल जैसे 100 वर्णों से अधिक लंबे तारों का पता लगाएं। उपयोग मामला WYSIWYG इनपुट से इन स्ट्रिंग्स से बचने के लिए है क्योंकि वे UI को तोड़ते हैं।

मैं इसे जावास्क्रिप्ट या jQuery के साथ कैसे कर सकता हूं?

उदा. मैं इस HTML में 100 वर्णों से अधिक लंबी स्ट्रिंग का पता कैसे लगा सकता हूं (URL, लेकिन बिना रेगेक्स वाले URL की तलाश में)? चयनकर्ता से शुरू #content:

इसे छोटी स्ट्रिंग से बदलने में सक्षम होने के लिए बोनस

<div id="content">
  <table border="0" cellspacing="0" cellpadding="0" style="margin: 0; padding: 0; border: 0; width:100%; border-collapse:collapse; color:#595959; background-color:#F7F7F7; font-size: 11pt;">
    <tbody style="font-family: Verdana, sans-serif;">
      <tr>
        <td>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</td>
      </tr>
      <tr>
        <td>Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic
          typesetting, remaining essentially unchanged.</td>
      </tr>
      <tr>
        <td>It has https://www.google.com/search?q=search+term+coronavirus+is+fake&rlz=1C1GCEB_enNL890NL890&ei=RzKIXvv9Oo3XkwXRgIG4CQ&start=50&sa=N&ved=2ahUKEwi7veqJm87oAhWN66QKHVFAAJc4KBDw0wN6BAgLED4&biw=1842&bih=1115 survived not only five centuries, but
          also the leap into electronic typesetting, remaining essentially unchanged.</td>
      </tr>
    </tbody>
  </table>
</div>
0
Daniel Ferreira 4 अप्रैल 2020, 10:22

1 उत्तर

सबसे बढ़िया उत्तर

कुछ इस तरह - ध्यान दें कि मुझे यह पता लगाने में काफी समय लगा कि रिप्लेस को & पसंद क्यों नहीं आया

मुझे लगता है कि उदाहरण के लिए एचआरईएफ के अंदर लंबे ग्रंथ नहीं पाए जाते हैं। अगर ऐसा है, तो हमें और प्रोसेसिंग की ज़रूरत है

नोट: आपके पाठ में केवल एक स्ट्रिंग है जो १०० वर्णों से अधिक लंबी है इसलिए मैंने ८० वर्णों तक सीमित कर दिया है

$(function() {
  const $content = $("#content");
  let html = $content.html()
  $content.text().split(/\s+/gm)
    .filter(str => str.trim().length > 80)
    .forEach(str => {
      str = str.replace(/\&/g, "&amp;")
      html = html.replace(str, `<span class="replace">${str.slice(0,50)+"..."}</span>`);
    })
  $content.html(html);
})
.replace {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="content">
  <table border="0" cellspacing="0" cellpadding="0" style="margin: 0; padding: 0; border: 0; width:100%; border-collapse:collapse; color:#595959; background-color:#F7F7F7; font-size: 11pt;">
    <tbody style="font-family: Verdana, sans-serif;">
      <tr>
        <td colspan="1" style="padding:10px">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</td>
      </tr>
      <tr>
        <td colspan="1" align="left" valign="top" style="padding:10px">Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it https://stackoverflow.com/questions/61024961/detect-replace-long-string-with-javascript-or-jquery#to make
          a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</td>
      </tr>
      <tr>
        <td colspan="1" align="left" valign="top" style="padding:10px">It has https://www.google.com/search?q=search+term+coronavirus+is+fake&rlz=1C1GCEB_enNL890NL890&ei=RzKIXvv9Oo3XkwXRgIG4CQ&start=50&sa=N&ved=2ahUKEwi7veqJm87oAhWN66QKHVFAAJc4KBDw0wN6BAgLED4&biw=1842&bih=1115 survived not only five centuries, but
          also the leap into electronic typesetting, remaining essentially unchanged.</td>
      </tr>
    </tbody>
  </table>
</div>
0
mplungjan 4 अप्रैल 2020, 08:04