1

これは、テキストエリア内で一致させたいものです。

@@+が呼び出され、文字が用語としてその横に追加されたときに、ユーザーが検索するオートコンプリート操作を実行する任意の文字。

これはテキストエリアです

<textarea></textarea>

これはjsです:

function strpos (haystack, needle, offset) {
  var i = (haystack + "").indexOf(needle, (offset || 0));
  return i === -1 ? false : i;
}

var dauto=function(){
  if(strpos($(this).val(),"@ "+reg_exhere)!==false){
    alert("match found");
  }
}

$("textarea").bind("keyup",dauto);
$("textarea").bind("keydown",dauto);

ここで、正規表現として何を使用すればよいか本当にわかりません。さらに、任意の文字の前の @ のルックアップが失われるため、そこで使用すると役立つかどうかもわかりません。そのため、次の文字列は true を返します。 :

@ mystring

一方、見つける必要があるのは次のとおりです。

@anycharacterhere

で試してみました

$(this).val().match(/^\+@\*+$/);
4

1 に答える 1

1

String#match()単純な正規表現で使用する/@(\w+)/

var dauto = function(){
  $( '#capture' ).html($( this ).val().match(/@(\w+)/)[1]);
}

$("textarea").bind("keyup",dauto);
$("textarea").bind("keydown",dauto);

次の HTML ブロックでテストします

<textarea></textarea>
<p id="capture"></p>

JsFiddle.net のワーキング デモ(そこで「hi @username」と入力してみてください)

于 2013-08-11T15:42:55.657 に答える