非常简单:
我有数学问题存储在数据库中,如3+6
,5*3
,4-2
等。
我希望输出显示正确的数学×s,而不是*(和÷,而不是/)。但由于显而易见的原因,它们必须用*和/存储在数据库中(在数据库中是“普通”字符与html实体,尤其是对于能够从字符串中解析它们的mathjs )。
所以我正在寻找一种在html输出中改变它们的方法。首先,我想到了css的一些东西,但这可能意味着我必须为它们创建一个类(或者这是可能的吗?)。然后我想我可以用jS/jQuery来实现。但一开始感觉太复杂了。
你会怎么做呢?
(服务器正在运行node.js + jade。字符串来自数据库,并直接呈现在页面上,因此我需要一种“事后”更改符号的方法。)
发布于 2015-12-08 02:04:28
您不必将字符存储为HTML实体。只要包含适当的字符集meta标记,就可以在页面中使用unicode符号。
<meta charset='utf-8'>
如果您不能将它们作为unicode存储在数据库中,那么您必须在以后以编程方式修复这些字符串。
var replacementSymbols: {
'*': '×',
'/': '÷'
};
function replaceInString(equation) {
var targetSymbols = Object.keys(replacementSymbols);
return targetSymbols.reduce(function(string, symbol) {
var replacement = replacementSymbols[symbol];
return string.replace(symbol, replacement);
}, equation);
}
发布于 2015-12-08 02:02:29
你想要做的事情在CSS中是不可能实现的。
您可以使用JavaScript的字符串替换方法来实现这一点。例如:
var str = "5*6"
var res = str.replace("*", "×");
http://www.w3schools.com/jsref/jsref_replace.asp
发布于 2015-12-08 02:04:16
在编写html时,您可以为每个*插入一个<span class='multiply'></span>
。
然后您可以执行以下操作:
$("span.multiply").html("×");
然后你你也会对除法做同样的事情,以此类推。
编辑
您也可以尝试如下所示:
var newHtml = $('body').html().replace(/\*/g, "×");
$('body').html(newHtml);
https://stackoverflow.com/questions/34140110
复制相似问题