我正在访问一个名为area的文本字段,其中包含以下文本:
The First Backward Classes
Commission was formed in
1953 as chairman.
Joachim Alva
fi
Hardekar Manjappa
Kaka Kalelkar
并且我想删除此文本中所有长度小于3的单词,以便获得包含text的文本字段:
The First Backward Classes
Commission was formed
1953 chairman.
Joachim Alva
Hardekar Manjappa
Kaka Kalelkar
我正在使用以下代码:
area.value = area.value.replace(/(\b(\w{1,2})\b(\W|$))/g,'').split(/\s+/).join( ' ' );
但是我得到的文本是:
First Backward Classes Commission formed 1953 chairman. Joachim Alva fi Hardekar Manjappa Kaka Kalelkar
文本字段中的整个文本都转换为我不希望的一行。
有更好的方法吗?
最佳答案
这是执行两次正则表达式替换的另一种方法。第一个替换将删除长度为2或更短的单词,第二个替换将删除多余的换行符空白。
var input = "The First Backward Classes\nCommission was formed in\n1953 as chairman.\nJoachim Alva\nfi\nHardekar Manjappa\nKaka Kalelkar\n";
input = input.replace(/\b\w{1,2}\b[ \t]*/sg, "").replace(/\n+(?=\n)/g, "");
console.log(input);