在jquery中只更改一次单词

在jquery中只更改一次单词,jquery,Jquery,我想在文本中查找并替换@joh的@jo 我的问题是,如果我一直单击span,输出会变成这样: @joshshsh js 有什么想法吗 尝试用.one更改.on方法 $(document).one("click", ".cclass", function() { /**/ }); one方法将只触发绑定事件一次 链接此处: 编辑: 可以使用.data方法在单击的元素上设置任意数据 $(this).data('paramName', paramValue); 链接:尝试用.one更改.on方法

我想在文本中查找并替换
@joh
@jo

我的问题是,如果我一直单击span,输出会变成这样:

@joshshsh
js

有什么想法吗


尝试用.one更改.on方法

$(document).one("click", ".cclass", function() { /**/ });
one方法将只触发绑定事件一次

链接此处:

编辑:

可以使用.data方法在单击的元素上设置任意数据

$(this).data('paramName', paramValue);

链接:

尝试用.one更改.on方法

$(document).one("click", ".cclass", function() { /**/ });
one方法将只触发绑定事件一次

链接此处:

编辑:

可以使用.data方法在单击的元素上设置任意数据

$(this).data('paramName', paramValue);

链接:

您可以使用a的力量,这里使用
\b
作为单词边界: 只要改变一下:

var p = '@jo';
致:

它只会替换后面跟一些“非单词”字符的
@jo
,如:

@jo,@anna
@jo@anna
,但不是
@josh
)。

你可以使用a的力量,这里使用
\b
作为单词边界: 只要改变一下:

var p = '@jo';
致:

它只会替换后面跟一些“非单词”字符的
@jo
,如:
@jo,@anna
@jo@anna
,但不是
@josh
)。

我看到两种方法:

使用正则表达式:

$(document).on("click", ".cclass", function() {
    var p = new RegExp("@jo\\b");
    var username = '@josh';
    $("#comment").val($("#comment").val().replace(p, username)); //want to replace @jo to @josh just once
});

或者只是添加一个空格

$(document).on("click", ".cclass", function() {
    var p = '@jo ';
    var username = '@josh ';
    $("#comment").val($("#comment").val().replace(p, username)); //want to replace @jo to @josh just once
});

我认为有两种方法:

使用正则表达式:

$(document).on("click", ".cclass", function() {
    var p = new RegExp("@jo\\b");
    var username = '@josh';
    $("#comment").val($("#comment").val().replace(p, username)); //want to replace @jo to @josh just once
});

或者只是添加一个空格

$(document).on("click", ".cclass", function() {
    var p = '@jo ';
    var username = '@josh ';
    $("#comment").val($("#comment").val().replace(p, username)); //want to replace @jo to @josh just once
});

完成更换后是否删除单击事件?完成更换后是否删除单击事件?哦,一个不错,但我想在此之后将此功能用于其他刻痕。jo和josh只是一个例子,我将从不同用户的不同跨度中获取此值。哦,。其中一个很好,但我希望在此之后将此函数用于其他Nick。jo和josh只是一个例子,我将从不同用户的不同跨度中获取此值。为什么在
@
前面有两个反斜杠?@JohnHascall-您需要从反斜杠中转义斜杠。让我重新表述一下-
@
为什么需要在它前面有一个反斜杠。在我看来,
RegExp(@jo\\b”)也可以。@JohnHascall-gah,你说得对。出于某种原因,我认为
@
是一个特殊的角色。更新。谢谢。为什么在
@
前面有两个反斜杠?@JohnHascall-你需要将斜杠从反斜杠中去掉。让我重新表述一下-
@
为什么在它前面需要一个反斜杠。在我看来,
RegExp(@jo\\b”)也可以。@JohnHascall-gah,你说得对。出于某种原因,我认为
@
是一个特殊的角色。更新。谢谢