2015-11-21 2 views
2

Я пытаюсь удалить пробелы до и после строки в жирном теге.Удалить пробелы до и после строки внутри тега в contenteditable div

Функциональность: я создал текстовый редактор, в котором, когда и введите текст и выделите текст и нажмите полужирным он будет жирный шрифт текст и при нажатии кнопки HTML, он показывает HTML сгенерированного в следующем окне ,

Проблемы столкнулись: Когда я пытаюсь дать табуляции, а затем введите текст и выберите текст вместе с пространством и смелое его, он жирным шрифтом вместе с пустым пространством. Следовательно, когда я просматриваю html в окне html, я могу видеть пробел в начале строки. Код, который я использовал, удаляет все пробелы из строки, но я просто хочу обрезать начало и начало и по-прежнему держать пробелы между строкой точно так же. Любая помощь будет высоко ценится.

например:, когда и попытаться смелой строку вместе с пространством ' fdgfg gfdgfg fdgfg', вот как это выглядит в редакторе. Созданный html был похож на <b>&nbsp;&nbsp;fdgfg gfdgfg fdgfg</b> Так что я написал код, который удаляет эти пробелы, но он удаляет все пробелы и остается с <b>fdgfggfdgfgfdgfg</b>. но я действительно хочу <b>fdgfg gfdgfg fdgfg</b> без пробелов.

Сценарий:

//shows the html 
    $("#show-html").click(function(){  
    var html = $("#textEditor").html();  
    html = html.replace(/&nbsp;|\s/gi, ''); 
    }); 

DEMO:

P.S: Необходимо удалить только начальный и конечный пробелы, он должен сохранить пробелы между текстом. например, " abcd efgh ", это должно быть обрезано до "abcd efgh", промежутки между текстами не должны удаляться.

+0

_ "Например: когда и попытаться полужирный строку вместе с пространством 'fdgfg gfdgfg fdgfg' , вот как это выглядит в редакторе. »_ Почему«     'будет удален из '    fdgfg gfdgfg fdgfg' если вкладка подсвечена и нажата кнопка «HTML»? – guest271314

+0

@ guest271314 Я пытаюсь просмотреть html, сгенерированный в другом div, когда я делаю это, я могу видеть   в начале и конце строки внутри жирного тега. , я хочу удалить это .if, см. демонстрацию и понять, что я на самом деле пытаюсь сделать. – Pbk1303

+0

Да, хотя ' ' будет частью введенного 'html', выбранного в редакторе? Требование не включает представление ввода 1: 1 в редакторе: 'html' отображается в окне дисплея? – guest271314

ответ

2

Один подход будет перебирать каждый из <b> элементов, удалить все подряд пробелы, а затем обрезать строка.

Updated Example

$('#textEditor b').each(function() { 
    $(this).text(function() { 
    return $(this).text().replace(/\s+/g, ' ').trim(); 
    }); 
}); 

Простой вход:

"  this  is a string " 

Выход:

<b>this is a string</b> 
+0

Croxier: это также удаляет лишние пробелы между текстом, я хочу удалить только начало и конец. см. мои примеры сценариев сообщений, чтобы лучше понять – Pbk1303

1

вы можете попробовать .trim()

str = "  something Here "; 
    console.log (str.trim()); 

или использовать его как этот

$.trim(str); 
+0

будет ли это работать с HTML-кодом? (т. е. все ' ' s во входной строке) – ochi

+0

@ochi не используют его после генерации html .. используйте его до этого .. когда вы поймаете текст из textarea, когда вы нажимаете жирную кнопку. string перед преобразованием его в html –

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