首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换字符串中的特定字符

替换字符串中的特定字符
EN

Stack Overflow用户
提问于 2015-12-08 01:58:29
回答 4查看 95关注 0票数 0

非常简单:

我有数学问题存储在数据库中,如3+65*34-2等。

我希望输出显示正确的数学×s,而不是*(和÷,而不是/)。但由于显而易见的原因,它们必须用*和/存储在数据库中(在数据库中是“普通”字符与html实体,尤其是对于能够从字符串中解析它们的mathjs )。

所以我正在寻找一种在html输出中改变它们的方法。首先,我想到了css的一些东西,但这可能意味着我必须为它们创建一个类(或者这是可能的吗?)。然后我想我可以用jS/jQuery来实现。但一开始感觉太复杂了。

你会怎么做呢?

(服务器正在运行node.js + jade。字符串来自数据库,并直接呈现在页面上,因此我需要一种“事后”更改符号的方法。)

EN

回答 4

Stack Overflow用户

发布于 2015-12-08 02:04:28

您不必将字符存储为HTML实体。只要包含适当的字符集meta标记,就可以在页面中使用unicode符号。

代码语言:javascript
运行
复制
<meta charset='utf-8'>

如果您不能将它们作为unicode存储在数据库中,那么您必须在以后以编程方式修复这些字符串。

代码语言:javascript
运行
复制
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);
}
票数 2
EN

Stack Overflow用户

发布于 2015-12-08 02:02:29

你想要做的事情在CSS中是不可能实现的。

您可以使用JavaScript的字符串替换方法来实现这一点。例如:

代码语言:javascript
运行
复制
var str = "5*6"
var res = str.replace("*", "×");

http://www.w3schools.com/jsref/jsref_replace.asp

票数 0
EN

Stack Overflow用户

发布于 2015-12-08 02:04:16

在编写html时,您可以为每个*插入一个<span class='multiply'></span>

然后您可以执行以下操作:

代码语言:javascript
运行
复制
$("span.multiply").html("×");

然后你你也会对除法做同样的事情,以此类推。

编辑

您也可以尝试如下所示:

代码语言:javascript
运行
复制
var newHtml = $('body').html().replace(/\*/g, "×");
$('body').html(newHtml);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34140110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档