繁体   English   中英

在javascript中修剪文本前的空白

[英]Trim white space before text in javascript

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

目标:修剪字段 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>
var stringWithLeadingSpaces = "        hello world!"
var trimmedString = stringWithLeadingSpaces.trim();
console.log(trimmedString); //logs "hello world!"

修剪

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

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();

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM