我正在尝试更新textarea中的子字符串。基本上,它是一个类似于@username功能的Twitter。用户将输入@user,我必须用用户选择的用户名替换“ @user ..”。

串:


  您好,这是[email protected]和@gma


在上面的字符串中,焦点位于字符串i。的末尾,@gma之后。
我想用自己选择的子字符串替换@gma。不知何故,我无法做到。
当我使用

this.value = this.value.replace("@gma"+"", "ReplaceText") + ' ';


[email protected]的@gma被替换。如何更改最近输入的@gma?

我可以插入符号的位置,但不能替换所需的子字符串。

任何帮助,将不胜感激。

最佳答案

您将要使用RegEx而不是普通字符串进行替换。

this.value = this.value.replace(new RegExp("@gma$","g"), "ReplaceText") + ' ';


重要的部分是$符号,这意味着仅在字符串的末尾搜索@gma。如果要在最后一个@符号后替换任何字母数字字符串:

this.value = this.value.replace(
    new RegExp("@[A-Za-z0-9]+$","g"),
    "ReplaceText")
+ ' ';

09-11 21:13