2013-04-26 3 views
0

У меня есть следующий текст, и я хочу удалить строку, содержащую только «& nbsp;» (т. е. удалить первую и последнюю строку, но сохранить третью строку) с помощью JavaScript?Удалить строки, содержащие определенную строку

Оригинал:

       
<br>  
    ABCDEF 
    

Желаемый результат:

<br>  
    ABCDEF 
+0

Вы пробовали что-нибудь, чтобы решить вашу проблему? – zerkms

+0

У вас есть эти '
' s в вашем коде, или вы просто добавили их, чтобы разбить эту строку здесь? –

+0

Я думаю, нам нужно будет увидеть некоторый код, чтобы понять контекст, связанный с этим вопросом. Трудно точно понять, что вам нужно здесь. – orb

ответ

0

Дайте ему шанс:

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

Fiddle

Также, если вы хотите сохранить строки без текста, замените * на +. То есть, принимая во внимание этот входной текст:

foo 
  

baz 

Первое регулярное выражение будет удалить пустую строку:

foo 
baz 

Хотя /(?:^|\r?\n)(?: )+?(?=$|\r?\n)/g держит его:

foo 

baz 
+0

Много спасибо !!! Оно работает. (
является частью моего кода) – lor

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), чтобы получить возвращаемое значение со всеми удаленными строками, которые вы не хотите.

+0

Большое спасибо. Оно работает! – lor

Смежные вопросы