我有以下文字,我想删除仅包含"& nbsp;" (即删除第一行和最后一行但保留第三行)使用JavaScript?
原始
      
<br>
&nbsp;&nbsp;&nbsp; ABCDEF
&nbsp;&nbsp;&nbsp;
期望的结果:
<br>
&nbsp;&nbsp;&nbsp; ABCDEF
答案 0 :(得分:0)
试一试:
var output = str.replace(/(?:^|\r?\n)(?:&nbsp;)*?(?=$|\r?\n)/g, '');
此外,如果您想保留没有任何文字的行,请*
替换+
。也就是说,考虑这个输入文本:
foo
&nbsp;
baz
第一个正则表达式将删除空行:
foo
baz
虽然/(?:^|\r?\n)(?:&nbsp;)+?(?=$|\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* \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)
以获取一个返回值,其中删除了您不想要的所有行。