質問
私は、H323追加する:ユーザーがIP電話をダイヤルするリンクをクリックすることができるように、高層の連絡先電話番号への番号スタイルのリンクを...
私が探していたHTMLは、次のとおりです。
<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>
と基本的に私は、TDにあり、44で始まる番号を引き出しスペースを取り除くと
のようなのhrefを持っているスパン内のリンクに固執したいですh323:4411231231312
すなわち。かっこ内の0を除去されます。
すべてのヘルプはgreatfully、次のいずれかに受信されるだろう。
(1)どのように私は+ \ dは\ dは数字を含むTDと一致していますか? 私はtdから番号を取得する場合(2)どのように私はスパンを除外するためにセレクタを使うのですか (3)どのような正規表現私は、hrefのためのクリーンアップに番号を使用する必要がありますか?
解決
これは何が必要に近づける必要があります。
$('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);
}
});
しかし注意の一言、span
の内容は、試合中に含まれる数字で始まる場合、これは計上する必要があります可能性がありますか?
他のヒント
ここで最終のGreaseMonkeyスクリプトだ - 誰かのために役に立つかもしれません...
// ==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);
}
});
}
})();
所属していません StackOverflow