注册 登录
编程论坛 JavaScript论坛

中文输入的数学口算题的格式化问题

xinranok 发布于 2010-12-17 18:17, 643 次点击
求教:中文输入的数学口算题的格式化问题
情况是这样的,我想做一个小数的口算练习,但不自动出题,作为一个老师,自动出题无法准确把握孩子的计算质量。这样就需要先从网上搜集一些口算练习题,例如:
7. 2 ÷ 8 ÷3
5. 6* 38 – 24 ÷6
6. 4× 5+ 3× 5
7. 5-( 3+ 4)
8. 7 + ( 1 + 1 )
这段习题存在几种情况,中文除号、小括号、加号、减号乘号7.2与7. 2的差别等。
第一:显示时候除号和乘号要中文显示
第二:背后代码当然要预先格式化成英文状态
那么怎样预先格式化这些东西呢
我是新手,我知道eval可以直接处理计算问题,但是要预先格式化成英文状态。我无法处理这段文本。
我在记事本中采取查找替换的方式,但这一是麻烦,二是容易出错。请高手指点
我也写了一段代码,解决现实问题
function my_splite(str){
 str=replaceReg(str)
var result = str.split(/\s+/);
return  result
}
//把字符串分割成数组
function getvalue(str){
return eval(str)
}

function getRoundValue(num){
  return  Math.round(num);
  }
//四舍五入

function  isNumeric(strNumber)  {  
 var  newPar=/^(-|\+)?\d+(\.\d+)?$/  
return(newPar.test(strNumber));
}  
//检测输入框中是否为数字



function replaceReg(str){
 reg=/[=]/g;
  return str.replace(reg,'')
 
}  
//删除=

function replaceMultiplication_sign(str){
 reg=/[*]/g;
  return str.replace(reg,'×')

}  
//替换成×显示



1 回复
#2
xinranok2010-12-17 18:22
7. 2 ÷ 8 ÷3
5. 6* 38 – 24 ÷6
6. 4× 5+ 3× 5
7. 5-( 3+ 4)
8. 7 + ( 1+1 )
上面的文本要处理成:
7.2/8/3
5.6*38-24/6
6.4*5+3*5
7.5-(3+4)
8.7+(1+1)
1