从javascript和jquery中的字符串中删除第一个匹配项

时间:2011-04-07 05:17:26

标签: javascript jquery string

我有这样的字符串'set , many, like, see, what'

当我创建此字符串时,我还使用链接元素

创建div
<div>
    <a href="#">set</a>
    <a href="#">many</a>
    <a href="#">like</a>
...
</div>

并创建带有'set , many, like, see, what'值的隐藏输入...当我们点击链接元素时,我们有链接字符串(例如:set) 如何删除字符串的第一个匹配并将其从隐藏输入中删除?

ps:我说第一场比赛,因为一个元素可以重复

2 个答案:

答案 0 :(得分:1)

var anchors = document.getElementById('container').getElementsByTagName('a'),
    hiddenInput = document.getElementById('hidden');

for (var i = 0, anchorsLength = anchors.length; i < anchorsLength; i++) {

   var anchor = anchors[i];

   anchor.onclick = function() {
      var term = anchor.innerHTML;
      hiddenInput.value = hiddenInput
                          .value
                          .replace(new RegExp(term + ',\s?'), '');
   }

}

此代码允许您单击其中一个锚点,其中将删除第一次出现的锚点文本节点,以及,和任何可选的空白字符。

答案 1 :(得分:1)

link是对其中一个链接的引用,theString是对字符串的引用,hidden是对隐藏输入控件的引用,您可以执行类似的操作这样:

link.onclick = function(e)
{
    var expr = new RegExp("\b" + this.innerHTML + "\b(, ?)?");
    theString = theString.replace(expr, "");
    hidden.value = theString;
}