用单引号替换双引号字符串
Replace double-quotes string by simple-quote
我正在使用 Middleman 和 Snipcart 开发电子商务项目。我需要使用多种货币,Snipcart 文档说我只需要在我的购买按钮中设置一个 data-item-price
和一个 JSON 数组,例如 {"usd": 20, "eur": 25}
。还有其他数据集要放在购买按钮上,所以我决定做一个助手。
这个助手 return 正是我想要的,但 data-item-price 是在双引号之间而不是在单引号之间。目前,代码被理解为 data-item-price="{"usd":20,"eur":22}"
而不是 data-item-price='{"usd": 20, "eur": 22}'
我需要用这个 <button data-item-price='{"usd":20,"eur":22}'>Buy</button>
来转换 <button data-item-price="{"usd":20,"eur":22}">Buy</button>
。
这是 snipcart(购买)按钮助手:
def snipcart_button (p, text)
args = {
"class" => "snipcart-add-item",
"data-item-id" => p.id,
"data-item-price" => p.price.to_json,
"data-item-name" => p[locale].name,
"data-item-max-quantity" => p.max_quantity,
"data-item-url" => snipcart_product_url(p),
"data-item-image" => p.image
}
content_tag :button, args do
text
end
end
你要找的可能不是双引号转单引号,而是这个帮手:https://apidock.com/rails/ActionView/Helpers/JavaScriptHelper/escape_javascript
这将转义双引号和单引号。
"data-item-price" => j(p.price.to_json),
这个有用吗?
def snipcart_button(p, text)
content_tag(:button, text, {
class: 'snipcart-add-item',
data: {
'item-id': p.id,
'item-price': p.price.to_json.html_safe,
'item-name': p[locale].name,
'item-max-quantity': p.max_quantity,
'item-url': snipcart_product_url(p),
'item-image': p.image
}
})
end
(非常)丑陋的方式是:
def snipcart_button(p, text)
content_tag(:button, text, {
class: 'snipcart-add-item',
data: {
'item-id': p.id,
'item-price': '',
'item-name': p[locale].name,
'item-max-quantity': p.max_quantity,
'item-url': snipcart_product_url(p),
'item-image': p.image
}
}).sub(/(data-item-price=)""/, "\1'#{p.price.to_json.html_safe}'").html_safe
end
我正在使用 Middleman 和 Snipcart 开发电子商务项目。我需要使用多种货币,Snipcart 文档说我只需要在我的购买按钮中设置一个 data-item-price
和一个 JSON 数组,例如 {"usd": 20, "eur": 25}
。还有其他数据集要放在购买按钮上,所以我决定做一个助手。
这个助手 return 正是我想要的,但 data-item-price 是在双引号之间而不是在单引号之间。目前,代码被理解为 data-item-price="{"usd":20,"eur":22}"
而不是 data-item-price='{"usd": 20, "eur": 22}'
我需要用这个 <button data-item-price='{"usd":20,"eur":22}'>Buy</button>
来转换 <button data-item-price="{"usd":20,"eur":22}">Buy</button>
。
这是 snipcart(购买)按钮助手:
def snipcart_button (p, text)
args = {
"class" => "snipcart-add-item",
"data-item-id" => p.id,
"data-item-price" => p.price.to_json,
"data-item-name" => p[locale].name,
"data-item-max-quantity" => p.max_quantity,
"data-item-url" => snipcart_product_url(p),
"data-item-image" => p.image
}
content_tag :button, args do
text
end
end
你要找的可能不是双引号转单引号,而是这个帮手:https://apidock.com/rails/ActionView/Helpers/JavaScriptHelper/escape_javascript
这将转义双引号和单引号。
"data-item-price" => j(p.price.to_json),
这个有用吗?
def snipcart_button(p, text)
content_tag(:button, text, {
class: 'snipcart-add-item',
data: {
'item-id': p.id,
'item-price': p.price.to_json.html_safe,
'item-name': p[locale].name,
'item-max-quantity': p.max_quantity,
'item-url': snipcart_product_url(p),
'item-image': p.image
}
})
end
(非常)丑陋的方式是:
def snipcart_button(p, text)
content_tag(:button, text, {
class: 'snipcart-add-item',
data: {
'item-id': p.id,
'item-price': '',
'item-name': p[locale].name,
'item-max-quantity': p.max_quantity,
'item-url': snipcart_product_url(p),
'item-image': p.image
}
}).sub(/(data-item-price=)""/, "\1'#{p.price.to_json.html_safe}'").html_safe
end