Frage

Ich möchte h323 hinzuzufügen: Anzahl Stil Links zu HighRise Kontaktnummern, so dass Benutzer auf einen Link klicken kann das IP-Telefon wählen ...

Die HTML Ich betrachte ist:

<table>
  <tbody>
    <tr>
      <th>Phone</th>
      <td>+44 (0)1123 1231312<span>Work</span></td>
    </tr>
    <tr>
      <th></th>
    <td>+44 (0)777 2342342<span>Other</span></td>
    </tr>
  </tbody>
</table>

und im Grunde möchte ich die Nummer, die in einem td ziehen und die beginnt mit +44, um die Räume abzustreifen und in einem Link in der Spanne zu halten, die eine href wie

hat
h323:4411231231312  

d. Strippen wird die 0 in Klammern.

Jede Hilfe würde greatfully auf eine der folgenden Bedingungen erhalten werden.

(1) Wie passe ich die td enthalten + \ d \ d Zahlen? (2) Wie kann ich Selektoren verwenden, um die Spanne auszuschließen, wenn ich die Nummer aus dem td erhalten (3) Was regex soll ich zur Reinigung verwenden, um die Nummer für den href?

War es hilfreich?

Lösung

Dies sollte in der Nähe sein, was Sie brauchen.

$('tbody td').each(function() {
    // match a sequence of digits, parentheses and spaces
    var matches = $(this).text().match(/[ \d()]+/);

    if (matches) {
        // remove the spaces and stuff between parentheses
        var href = 'h323:' + matches[0].replace(/\s|\(.*?\)/g, '');
        var link = $('<a/>').attr('href', href);

        $('span', this).append(link);
    }
});

Ein Wort, obwohl der Vorsicht, wenn ein span Inhalt beginnt mit einer Ziffer in dem Spiel enthalten sein werden; ist dies eine Möglichkeit, die für?

berücksichtigt werden muss

Andere Tipps

Hier ist die letzte Greasemonkey-Skript - vielleicht für jemanden nützlich sein ...

// ==UserScript==
// @name          HighRise Dialler
// @namespace     
// @description   Adds a CALL link to HighRise Contacts.
// @include       https://*.highrisehq.com/*
// @require       http://code.jquery.com/jquery-latest.min.js
// ==/UserScript==

(function(){

GM_xmlhttpRequest({
   method: "GET",
   url: "http://jqueryjs.googlecode.com/files/jquery-1.2.6.pack.js",
   onload: run
});

function run(details) {

   if (details.status != 200) {
       GM_log("no jQuery found!");
       return;
   }

   eval(details.responseText);
   var $ = jQuery;

   //do something useful here....

   $('table td').each(function() {
       var matches = $(this).text().match(/^\+*?[\d\(\) ]+/);

       if (matches) {
         var href = 'h323:' + matches[0].replace(/\+44|\+|\s|\(|\)/g, '');
         var link = $(' <a>CALL<a/>').attr('href', href);
         $(this).find('span').append(link);
       }
   });

}

})();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top