关于textarea中单词出现的指南

时间:2014-03-12 22:08:55

标签: javascript jquery

我有一个Textarea框,一个文本框和一个按钮。我想点击按钮,文本框中的单词将根据textarea中的单词进行检查并计算出现次数。

我已经尝试过去2天写一个点击功能来执行此操作但没有到达任何地方,因为不确定接下来会有什么代码或逻辑。只设法读取textarea中的内容,但不知道如何在文本框中获取单词并在textarea中搜索句子。

请我是JQuery的新手,所以不要求任何人编写代码,但如果可能的话,更多的是指南。如果这里不允许这个问题,我很乐意将其删除。感谢

3 个答案:

答案 0 :(得分:1)

使用string.match()以及处理以确保第一个字符串不为空并且确实存在匹配。在jQuery中做了以下内容,因为您似乎对使用它感兴趣。

var textVal = $('#textbox').val();
var textArea = $('#textarea').val();
var matching = new RegExp('\\b' + textVal + '\\b','g');             
var count = textArea.match(matching);
var result = 0;

if (count !== null) {
    result = count.length;
}

http://jsfiddle.net/promiseofcake/t8Lg9/3/

答案 1 :(得分:0)

您正在寻找字符串出现次数,因此请查看this thread

您可以使用match()执行此操作,如评论中所示:

var m = searchText.match(new RegExp(wordMatch.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "ig"));
// m.length contains number of matches

但这也会匹配部分词,比如'foxy'中的'fox'。所以另一种方法是将输入分成单词并逐个遍历:

var count = 0;
var words = searchText.split(' ');
for (x in words) {
    if (words[x].toLowerCase() == wordMatch) {
        count++;
    }
}

看一下这个完整的例子:http://jsfiddle.net/z7vzb/

答案 2 :(得分:0)

<input type="text"/>
<textarea>...</textarea>
<button>Get</button>
<div></div>
<script>
$("button").click(function(){
count=$("textarea").text().split($("input[type=text]").val()).length-1;
$("div").html(count);
})
</script>