首页 > 解决方案 > 如何在javascript中用“”(空格)替换字符串中长度小于3的所有单词?

问题描述

我正在访问一个名为 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

文本字段中的整个文本被转换成我不想要的单行。有更好的方法吗?

标签: javascriptreplace

解决方案


这是另一种进行两个正则表达式替换的方法。第一个替换删除长度为 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);


推荐阅读