JavaScript中要忽略的单词列表?
我有一个使用jQuery插件Datatables从粘贴到textarea的任何文本生成的表。我想忽略数字以及大量常用词,如“and,or,for,the,but,etc”。我该怎么做 以下是我当前的JavaScript:JavaScript中要忽略的单词列表?,javascript,jquery,regex,jquery-plugins,datatables,Javascript,Jquery,Regex,Jquery Plugins,Datatables,我有一个使用jQuery插件Datatables从粘贴到textarea的任何文本生成的表。我想忽略数字以及大量常用词,如“and,or,for,the,but,etc”。我该怎么做 以下是我当前的JavaScript: <script> $( document ).ready( function() { $('form').submit(function(event){ event.preventDe
<script>
$( document ).ready( function() {
$('form').submit(function(event){
event.preventDefault();
var
keyword_list = $('#searchtext').val().split(" "),
word_list = $('#searchtext').val().split(" "),
nwords = word_list.length;
$('#result').html(nwords + " Total Words in Article");
keyword_dict = {};
for (var i = 0, w; w = keyword_list[i]; i++) {
var w = w.replace(/\W/g,'');
keyword_dict[w] = 0;
}
for (var i = 0, w; w = word_list[i]; i++) {
var w = w.replace(/\W/g,'');
for(var keyword in keyword_dict){
if (keyword == w){
keyword_dict[w] += 1;
}
}
}
items = '<thead><th>unique keywords</th><th>occurance</th><th>percent of text</th></thead>';
for (keyword in keyword_dict){
var occ = keyword_dict[keyword]*100/nwords;
var c=''
items += '<tr class="'+c+'"><td>'+keyword+'</td><td>'+keyword_dict[keyword]+'</td><td>'+occ.toPrecision(2)+'</td></tr>';
}
console.log(keyword_dict);
$('#result').append('<table>'+items+'<table>');
$('#result table').dataTable();
});
});
</script>
$(文档).ready(函数(){
$('form')。提交(函数(事件){
event.preventDefault();
变量
关键字_list=$('#searchtext').val().split(“”),
word#u list=$('#searchtext').val().split(“”),
nwords=单词列表长度;
$(“#result”).html(nwords+“文章中的总字数”);
关键词_dict={};
for(变量i=0,w;w=关键字列表[i];i++){
变量w=w.替换(/\w/g,”);
关键词_dict[w]=0;
}
for(var i=0,w;w=word_list[i];i++){
变量w=w.替换(/\w/g,”);
for(关键字_dict中的var关键字){
如果(关键字==w){
关键词_dict[w]+=1;
}
}
}
items='唯一关键字准确度文本百分比';
for(关键字中的关键字){
var occ=关键字[keyword]*100/nwords;
变量c=''
项目+=''+关键字+''+关键字[关键字]+''+货币监理处精度(2)+'';
}
控制台日志(关键字_dict);
$(“#结果”)。追加(“”+项+“”);
$(“#结果表”).dataTable();
});
});
以下是HTML:
<form>
<label>Article:</label><br>
<textarea rows="25" cols="100" id="searchtext"></textarea><br>
<input class="btn btn-success" id="go" type="submit" value="Submit"></input>
</form>
<div id="result">
</div>
文章:
jQueryinaray函数返回项目的索引,如果不是fount,则返回-1:
var commonWords = ['and','or','the'];
if($.inArray( keyword.toLowerCase(), commonWords)==-1){
// it's not one of common words
}
else{
// it is one of common words
}
编辑:我添加了一个小写字母,表示您希望忽略单词的大小写敏感度。jQueryinArray函数返回项目的索引,如果不是fount,则返回-1:
var commonWords = ['and','or','the'];
if($.inArray( keyword.toLowerCase(), commonWords)==-1){
// it's not one of common words
}
else{
// it is one of common words
}
编辑:我添加了一个小写字母,表示您希望忽略单词的大小写敏感度。这里有一个函数可以做到这一点:
函数清理文本(文本){
//在此处添加更多以|分隔的单词
var commonWords=/和|或|表示|但是|等|/g;
//删除常用词
text=text.replace(常用词“”);
//删除号码
text=text.replace(/\d/g');
//删除连续的空白
text=text.replace(/\s{2,}/g',);
返回文本;
}
测试:
var text='javascript 123 5656 787878 for the but and or function 56 the to and or remove 56 90009090 not 2121 needed or and content ';
console.log(cleanUpText(text));
产出:
javascript函数删除不需要的内容
这里有一个函数可以实现这一点:
函数清理文本(文本){
//在此处添加更多以|分隔的单词
var commonWords=/和|或|表示|但是|等|/g;
//删除常用词
text=text.replace(常用词“”);
//删除号码
text=text.replace(/\d/g');
//删除连续的空白
text=text.replace(/\s{2,}/g',);
返回文本;
}
测试:
var text='javascript 123 5656 787878 for the but and or function 56 the to and or remove 56 90009090 not 2121 needed or and content ';
console.log(cleanUpText(text));
产出:
javascript函数删除不需要的内容
嗨@davidkonrad我试着把它添加到我的脚本中,但它似乎不起作用。我应该把它放在哪里?我应该对它做什么具体的修改?我尝试用关键字和结果替换单词“text”,但两者都不起作用。只需将上述函数放在
部分,并在每次需要清理
输出时调用该函数即可。您的代码对我来说不是很清楚,但猜测是var text=cleanUpText($('#searchtext').val())
作为提交
-事件的第一行,但实际上无法判断。我只是技术性地回答了这个问题。嗨@davidkonrad,我试着把它添加到我的脚本中,但它似乎不起作用。我应该把它放在哪里?我应该对它做什么具体的修改?我尝试用关键字和结果替换单词“text”,但两者都不起作用。只需将上述函数放在
部分,并在每次需要清理
输出时调用该函数即可。您的代码对我来说不是很清楚,但猜测是var text=cleanUpText($('#searchtext').val())
作为提交
-事件的第一行,但实际上无法判断。我只是技术性地回答了这个问题。