Справочная информация: пользователи слишком часто добавляют дополнительные разрывы строк, которые могут варьироваться между тегами BR, P и DIV до конца (а иногда и до начала) их ввода с помощью редактора WYSIWYG.Мне нужно выполнить очистку, чтобы удалить любой тип разрыва строки из начала и конца ввода.
Вот пример ввода, который требует очистки:
<div> </div><div> </div><p> </p><br />this is the input to keep<div> </div><br /><div> </div><p> </p><div> </div>
Для очисткивверх, я создал следующее расширение, которое работает хорошо ... за исключением того, что оно перебирает каждый разрыв строки по порядку.
public static string RemoveStartAndEndBreaks( this string input )
{
var lineBreaks = new[] { "<br>", "<br/>", "<br />", "<p></p>", "<p> </p>", "<p> </p>", "<div></div>", "<div> </div>", "<div> </div>" };
foreach( var lb in lineBreaks )
{
while( input.StartsWith( lb ) )
{
input = input.Substring( lb.Length );
}
while( input.EndsWith( lb ) )
{
input = input.Substring( 0, input.Length - lb.Length );
}
}
return input;
}
Таким образом, проблема в том, что он будет очищать все разрывы строк, только если они появляются вв том же порядке, как они представлены в массиве.Таким образом, используя приведенный выше пример, получим в результате:
<p> </p><br />this is the input to keep<div> </div><br /><div> </div><p> </p>
Обратите внимание, что он удаляет только первый найденный тип разрыва, если он появляется в начале или конце входной строки, и игнорирует остальные.
Q1.Как перезапустить цикл через массив, когда совпадение найдено?
Q2.Является ли перезапуск цикла каждый раз, когда совпадение считается единственным вариантом, или существует более эффективный способ проверки каждого вхождения и удаления его из начала и конца?
Q3.Я пропустил что-то явно очевидное?
Обратите внимание, что вводом является html, и, следовательно, результирующий вывод будет (потенциально) содержать те же разрывы строк, которые описаны в массиве строк, которые должны остаться.
т.е. я только удаляю разрывы строк из начала и конца ввода.Те, кто посередине, должны оставаться там.