从contenteditable div中的标记内的字符串之前和之后删除空格

时间:2015-11-21 01:31:23

标签: javascript jquery trim spaces

我正在尝试删除粗体标记中字符串前后的空格。

功能 我创建了一个文本编辑器,当你输入文本并选择文本并按下粗体时,它会加粗文本,当你按下html按钮时,它会显示在下一个窗口中生成的html。

面临的问题: 当我尝试提供标签空间然后输入文本,并选择文本以及空格并加粗它时,它会与空白空格一起加粗。因此,当我在html窗口中查看html时,我能够看到字符串开头的空格。 我使用的代码从字符串中删除所有空格,但我只想修剪起始和开始,并仍然保持字符串之间的空格就像那样。任何帮助将不胜感激。

E.g:当您尝试将字符串与空格 ' 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",不应删除文本之间的空格。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您可以尝试test

.trim()

或像这样使用

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