Facebook で見られるような「先行入力」の友人/フォロワー機能を実装しています。
ユーザーがコメント ボックスに「@」キーを入力すると、次の 2 つの単語が、オートコンプリート リストをレンダリングするユーザー名の json 配列に対してチェックされる必要があります。
ユーザーが「@」を押したときに現在トリガーされているイベントが既にあります。これにより、完全なテキスト文字列が、照合を実行する別の関数に送信されます。このテキストを解析して、「@」に続くテキストを取得する必要があります。
したがって、実際の問題は、文字列内の「@」の直後に続くテキストをどのように取得できるかです。
一致は、文字列内の「@」の最後のオカレンスから抽出する必要があります。(ユーザーが入力した同じ文字列内で複数のオートコンプリートを許可するため。)
正規表現/JS文字列操作をよりよく理解している人が助けてくれることを願っています.
前もって感謝します。
編集:
いくつかの例を追加するだけです:
@John Smith says hello
返す必要があります:
John smith says hello OR simply 'John Smith' - Either is okay for this purpose
ただし、この文字列:
I was talking to @John Smith and he told me all about @Sarah Smith
のみを返す必要があります:
Sarah Smith