【问题标题】:Line Break and Extra Spaces Randomly Showing in JavascriptJavascript中随机显示的换行符和额外空格
【发布时间】:2018-11-10 19:13:19
【问题描述】:

我正在使用 Rails 5.2、ruby 2.4.1 并使用 Postgres(PG) 数据库。我正在尝试将 javascript 变量设置为我的数据库中的值。除了名为“名称”的第一列之外,我在所有这些上都取得了成功。出于某种原因,每个名称前都添加了两个额外的空格。然后它最终会在其中一个上抛出一个错误,说无效或意外的令牌。当它抛出错误时,代码看起来像是插入了一个换行符。

fullName: '
Chase  Dougherty',
firmName: 'Chase Bank', etc...

看起来像之前的每个人

fullName: '  Example Name',
firmName: 'Example Bank'. etc...

我的数据库中我的姓名列是正确的,因为我可以在每一行上单击“显示”并且没有多余的空格。

如果我删除 info.name,其他一切正常。如果我从 erb 标记中删除等号,它可以工作,但我的 javascript 变量将不保存任何内容(显然)。加载时会发生此错误。有没有人有一些想法我可以测试来解决这个问题?这是我的代码,如果你想测试一下。

<script>

setContents = function setsPostgresDatatoJavascriptVariables(){

<% collective.each do |info| %>
typeMarkers = [
  {
    fullName: '<%= info.name %>',
    firmName:'<b><%= info.firm_name %></b>',
    firmNumber:'<b><%= info.firm_number %></b>',
    adjustmentType:'<b><%= info.adjustment_type %></b>',
    address:'<%= info.address_1 %>',
  },
];
<% end %>
}

<script>

【问题讨论】:

  • "我的数据库中的姓名列是正确的,因为..." 在显示页面上,您的浏览器在渲染时会压缩空格。您应该做一个查看源代码,它将显示任何空白。检查一下,如果名称在那里显示任何新行,请告诉我。
  • 谢谢!我会调查的。我得赶紧跑去开会,但马上就回来。
  • 是的,我认为这取决于输入的空格类型。如果空格是用户输入的字符,它可以是任意数量的 unicode 空格字符(包括中断空格)。您可以尝试执行类似info.name.chars.map(&amp;:ord) 的操作,看看它是什么类型的空白,然后通过模型上的某种方法了解如何删除它。
  • @MarlinPierce 和 Matthew 问题出在用户的空白处。 Marlin,你说得对,除非我从浏览器查看源代码,否则它不会出现在显示页面中。我在模型中使用了 strip 方法来清除第一列的多余空间。

标签: javascript ruby-on-rails postgresql erb


【解决方案1】:

“我的数据库中的姓名列是正确的,因为...”

在显示页面上,您的浏览器在呈现时会压缩空格。您应该做一个查看源代码,它将显示任何空白。

如果您在此处看到前导空格,则前导空格在您的数据库中。您可以致电strip() 将其删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2017-03-03
    • 2013-04-06
    • 2011-09-26
    相关资源
    最近更新 更多