我正在尝试更新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")
+ ' ';