9

Facebook と Twitter でユーザーの投稿を共有するために使用されている php ファイルがあります。たとえば、Twitter のアイコンをクリックすると、自分のサイトへのハイパーリンクが自動的に書き込まれる画面が表示されます。www.これは良いのですが、Twitterの画面に自動で表示されるURLの部分を削除したいです。これは location.host と関係があるのではないかと思い、ググったのですが、この問題に対する適切な答えが見つかりませんでした。

これが私のコードの例です:

function e(f,i,an)
{
        with(document)
        {
                write('<div style="width:100%"><table id=m'+i+' style="visibility:hidden"><tr>');
                write('<td id="vst' + i + '" style="white-space:nowrap">&nbsp;</td>');
                write('<td hr(this.childNodes[0])" title="share on facebook"><a href="javascript:od(\'http://www.facebook.com/sharer.php?u=' + location.host + '/e/'+ i +'\',900,400)" class=icon><img src="images/facebook.png" target="_blank"></a></td>');
        write('<td hr(this.childNodes[0])" title="share on twitter"><a href="javascript:od(\'http://twitter.com/home?status=' + location.host + '/e/'+ i +' - %20read!\',800,600)" class=icon><img src="images/twitter.png" target="_blank"></a></td>');
                write('<td class=ei><a name="cid'+i+'"></a><a href="e/'+i+'">( #'+i+' )</a></td>'); 

                  document.write('<td>&nbsp;</td>');

私の 2 番目の質問は次のとおりです。Twitter 画面にカスタム タイトルを追加するにはどうすればよいですか。

4

5 に答える 5

14

最初に...ホストを変更できます:

location.host.replace('www.','')

編集:懸念に対処する

www再び反対票が投じられ、最初のコメントに多くの賛成票が寄せられたので、次を含むサブドメイン以外のサブドメインに関する懸念に対処しようと思いますwww...

このソリューションではまだ正規表現を避けています。これは主に、一般的に正規表現を維持するのが難しく、正規表現にまったく触れない開発者がたくさんいるためです...

var cleaned_host;
if(location.host.indexOf('www.') === 0){
    cleaned_host = location.host.replace('www.','');
}
// do something with `cleaned_host`

...またはもっと簡潔に...

location.host.indexOf('www.') && location.host || location.host.replace('www.', '');
// evaluates to hostname with starting `www.` removed
于 2012-09-22T12:31:36.540 に答える
12

サブドメインではなく、セカンドレベルとトップレベルのドメインのみを取得したい場合は、次の方法が役立ちます。

var url = location.host; // e.g. "www.example.com"
return url.split(".").slice(-2).join("."); // "example.com"

これは、他のサブドメインや、3 レベル以上のドメインでも機能します。

于 2012-09-22T12:48:34.000 に答える
2

location.host.replace('http://www.','')

または (http:// を保持したい場合)

location.host.replace('http://www.','http://')

www が先頭にある場合にのみ www を置き換えるようにします。

于 2012-09-22T12:34:54.120 に答える
0

さまざまなwwwをすべて削除します。マッチ


www を削除する必要がある場合。またはw。またはww。またはww2。など、以下のコードが便利になるかもしれません。

Javascript

var searchPattern = "^w+\\d*\\." ;
var rx = new RegExp( searchPattern, "gim" ) ;
var replacePattern = "" ;
var replacedText = sourceText.replace( rx, replacePattern ) ;

PHP

preg_replace( '|(?mi-Us)^w+\\d*\\.|D', '', $sourceText, $limit, $count) ;
于 2015-10-21T12:57:27.103 に答える