首页 > 解决方案 > Javascript 中随机显示的换行符和额外空格

问题描述

我正在使用 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>

标签: javascriptruby-on-railspostgresqlerb

解决方案


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

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

如果您在那里看到前导空格,那么前导空格在您的数据库中。您可能会打电话strip()将其删除。


推荐阅读