删除包含特定字符串的行

时间:2013-04-26 03:09:57

标签: javascript string

我有以下文字,我想删除仅包含"& nbsp;" (即删除第一行和最后一行但保留第三行)使用JavaScript?

原始

      
<br>     
    ABCDEF
   

期望的结果:

<br>      
    ABCDEF

2 个答案:

答案 0 :(得分:0)

试一试:

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

Fiddle

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

foo
 

baz

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

foo
baz

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

foo

baz

答案 1 :(得分: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)以获取一个返回值,其中删除了您不想要的所有行。