1

#ダミータグシステムを開始するために、要素内の文字列を取得しようとしています。基本的

#hello #goodbye #good afternoon

その後、次のように表示されます

hello goodbye good

これは私がこれまで持っている正規表現です

/#^\s/

私は正規表現があまり得意ではありません^\sが、空白までテキストを取得したいものだと思います。

HTML の例:

<div class="content">
 <div>Hello everyone today we are going to be discussing #world_views , <br />
  Please enjoy today's discussing by #user2
  </div>
</div>

私がそれを変えたいのは

<div class="content">
 <div>Hello everyone today we are going to be discussing 
    <a href="/search&keywords=world%20views">#world_views</a> , <br />
  Please enjoy today's discussing by <a href="/search&keywords=user2>#user2</a>
  </div>
</div>

これまでの完全な JavaScript:

$(function() {
   var i,forum={
     phpbb2:'.postbody',
     phpbb3:'.post .content',
     punbb:'.entry-content',
     invision:'.postbody'
    },
  yourVersion="phpbb3";

 for (i=0;i<forum[yourVersion].length;i++){
     $(forum[yourVersion][i]).html(function() {
     return $(this)
             .html()
             .replace(
                 /#^\s/,
                '<a href="/search&keywords='+$1.replace("#","")+'">$1</a>');
    });
   }
 });
4

3 に答える 3

11

「1回以上空白文字ではないもの」を探しています。これは、正規表現では次のようになります。

\S+

したがって、正規表現の場合は次のようになります。

/#\S+/

\S+次のように、一致したテキストのみを含むキャプチャ グループの使用を検討することもできます。

/#(\S+)/

キャプチャ グループ #1 には、ハッシュ記号のないハッシュタグのテキストが含まれます。

于 2013-07-06T00:31:40.577 に答える
0

JavaScript では、新しい RegExp オブジェクトを作成してテストします。

このようなものがうまくいくはずです。

var string = $("#some_id").val();
var regexp = new RegExp("/#^\S+/");

if (regexp.test(string) === true) {
     // do something here
     return true; // optional
}
else {
     // do something else here
     return false; // optional
}
于 2013-07-06T00:35:54.163 に答える