我有一个Textarea框,一个文本框和一个按钮。我想点击按钮,文本框中的单词将根据textarea中的单词进行检查并计算出现次数。
我已经尝试过去2天写一个点击功能来执行此操作但没有到达任何地方,因为不确定接下来会有什么代码或逻辑。只设法读取textarea中的内容,但不知道如何在文本框中获取单词并在textarea中搜索句子。
请我是JQuery的新手,所以不要求任何人编写代码,但如果可能的话,更多的是指南。如果这里不允许这个问题,我很乐意将其删除。感谢
答案 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;
}
答案 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>