在javascript

时间:2016-10-10 03:54:12

标签: javascript jquery whitespace trim

无法找到答案,我尝试了我在本网站和其他地方发现的内容,但它从未奏效。

目标:在字段DIV中给出一个单词之前和之后修剪空格。

问题:只要一个单词前面没有空格,一切正常!可以在DIV中存在文本,可以是可以插入文本的空DIV。

我尝试在DIV中的javascript中使用 trim(this),但这并不起作用。即使在脚本本身,我也尝试过 $。trim(editableObj.innerHTML),也没有 editableObj.innerHTML.trim()

什么都行不通!

JS

<script>
function showEdit(editableObj) {
  $(editableObj).css("background", "#FFF");
}

function saveToDatabase(editableObj, column, linkmainid, nav, linkid) {
  $(editableObj).css("background", "#FFF url(loaderIcon.gif) no-repeat right");
  $.ajax({
    url: 'save'+nav+'.php',
    type: "POST",
    data: 'linkcat=' + column + '&linktitle=' + editableObj.innerHTML + '&linkmainid=' + linkmainid + '&action=' + nav + '&linkid=' + linkid,
    success: function(data) {
      $(editableObj).css("background", "#FDFDFD");

      window.location="/website/cms/menu.php";
    }
  });
}

HTML

<div class="navnew" contenteditable="true" onBlur="saveToDatabase(this,'1','999999','navnew','111')" onClick="showEdit(this);"></div>

3 个答案:

答案 0 :(得分:1)

var stringWithLeadingSpaces = "        hello world!"
var trimmedString = stringWithLeadingSpaces.trim();
console.log(trimmedString); //logs "hello world!"

trim

答案 1 :(得分:0)

将此代码段添加到您的代码中:

String.prototype.trim = String.prototype.trim || function trim() { 
       return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };

然后,使用:

var myValue = "  one, two, three    ".trim();

var myValue = "  one, two, three    ";
var myValueTrimmed = myValue.trim();

答案 2 :(得分:0)

在内容可编辑DIV中键入空格会插入非中断空格字符。如果您检索editableObj.innerHTML的内容,则这些内容会显示为字符实体字符串&#34;&amp; nbsp;&#34;的序列。当然String.prototype.trim 删除了&#34;&amp; nbsp;&#34;因为它们不是空白文本!

如果您将内容检索为editableObj.textContent,则返回的文本包含字符代码为0xA0的实际非中断空格。 String.prototype.trim会删除这些。

最终选择适合您需要的修剪方法,具体取决于您是要在数据库中保存HTML还是纯文本。