使用JS在字符串中查找逗号

时间:2011-07-11 16:21:55

标签: javascript jquery tagging

我正在努力学习JS,所以请原谅我,如果你的代码让世界爆炸。 无论如何,我正在尝试制作类似于SO的标记系统界面。用户在单词中键入的内容和SO在逗号上分隔(或在空格键上但我不想这样)。

我正在使用jQuery访问DOM(因为它更容易),我知道有各种plugins可以做到这一点并为无家可归者提供食物,但正如我所说,我想学习。< / p>

这是我到目前为止所拥有的:

<input type="textbox" name="somebox" id"someid">

$(document).ready(function() {
    var startPos = 0;

    $("#someid").keyup(function() {
        var inputText = $(this).val();
        var commaPosition = inputText.indexOf(",", startPos);
        var foundWords = [];

        alert('Hello'); // even this doesn't work... why???
        if (commaSearch !== '-1') {

            // take the word:
            foundWords.push(inputText.slice(startPos,commaPosition));

            startPos = commaPosition + 1;
        }
    });
});

It can also be found here。似乎没有什么工作,甚至没有警报。任何帮助都会很感激。

4 个答案:

答案 0 :(得分:2)

问题:

  • HTML无效 - 您在=id之间错过了"someid"。这将使alert()工作。
  • 使用String.split(',')而不是String.indexOf(',')。拆分和删除额外的空格:inputText.split(/\s*,\s*/g)
  • 我也得到Uncaught ReferenceError:未定义commaSearch。 - Felix Kling

带有修正的演示:http://jsfiddle.net/mattball/2sE8b/

答案 1 :(得分:0)

这是你想要的吗?

DEMO

$(document).ready(function() {
    $("#someid").keyup(function() {
        var inputText = $(this).val();
        var foundWords = inputText.split(","); // or as posted elsewhere split(/\s*,\s*/g)
        if (foundWords.length>1) $("#tags").html(foundWords.join(";"))
    });
});

答案 2 :(得分:0)

你会笑,但你=前面没有id=someid:D http://jsfiddle.net/SuperPhil/9KVs4/2/

答案 3 :(得分:0)

this你想要的是什么吗?

正如Matt Ball所指出的那样,你在HTML中的=之后错过了id符号。接下来,您使用commaPosition然后commaSearch。接下来,使用带有数字和字符串的not-identity运算符,它始终返回false