0

我有以下文本,我想删除仅包含“ ”的行 (即删除第一行和最后一行,但保留第三行)使用 JavaScript?

原来的:

      
<br>     
    ABCDEF
   

期望的结果:

<br>      
    ABCDEF
4

2 回答 2

0

试一试:

var output = str.replace(/(?:^|\r?\n)(?: )*?(?=$|\r?\n)/g, '');

小提琴

此外,如果您想保留没有任何文本的行,请替换*+. 也就是说,考虑到这个输入文本:

foo
 

baz

第一个正则表达式将删除空行:

foo
baz

虽然/(?:^|\r?\n)(?: )+?(?=$|\r?\n)/g保留它:

foo

baz
于 2013-04-26T03:25:00.950 回答
0

这个函数应该这样做:

function cleanLines(s) {
var x = s.match(/[^\r\n]*/g), i, y;
for (i=0; i<x.length; i++) {
y = x[i].replace(/\s*&nbsp;\s*/g, '');
if (y.length == 0)
x[i] = y;
else
x[i] = x[i] + '\n'; /* or \r\n if you want 30-year obsolete typewriter carriage returns */
}
return x.join('');
}

运行该函数cleanLines(inputString)以获取一个返回值,其中删除了您不想要的所有行。

于 2013-04-26T03:25:08.063 回答