Javascript数字格式化/单位转化
最近又写了一个小玩意。 这个东西其实就是将一个数的单位进行转换(百-->万;万-->亿;千-->十等)
转换的思路就是乘除10的X次方(其实用字符数组可以直接移动小数点的位置这种方式……)
格式化的思路就是将输入的数字按整数与小数两部分分开,分别处理。每凑过3位就加一个逗号(将整数或小数部分转化成字符数组处理)。
格式化这部分(就是够3位加一个逗号),其实系统有现成的方法:Number类的toLocaleString。就是这个方法和本地设置有关系。
<html>
<head>
<title>Javascript test</title>
</head>
<script type="text/javascript">
//点击"转换"时进行单位转换
function transformation() {
var selunit = selectUnit.options[selectUnit.selectedIndex].value;//获得单位
var resunit = resultUnit.options[resultUnit.selectedIndex].value;
var temp = amount.value;
temp = Number(temp.replace(/[^0-9.]/g, "")) * selunit / resunit;//进行单位转换
result.value = format(temp);
}
//用户输入时进行即时处理
function formatText(event) {
var targ;//触发事件的对象引用
if (!event) {
event = window.event;//获得当前事件(IE)
}
if (event.target) {//IE没有target
targ = evente.target;
} else if (event.srcElement) {//适用于IE
targ = event.srcElement;
}
var temp = targ.value;
temp = temp.replace(/[^0-9.]/g, "");//去除","等其他字符,只保留数字和小数点
targ.value = format(temp);
transformation();
}
//格式化控制
function format(number) {
number = number.toString();
if (number.indexOf(".") != -1) {//数值中有"."
var numberArr = number.split(".");//将数值的整数部分与小数部分分开
return formatInt(numberArr[0]) + "." + formatDouble(numberArr[1]);
} else {//数值中无"."
return formatInt(number);
}
}
//格式化数字(整数)
function formatInt(number) {
var len = Math.floor(number.length / 3);//计算需要几个","
var remainder = number.length % 3;//计算第一个","前面有几位
if (len < 1) {//长度不需要加","
return number;
}
var array = number.split("");//将数字
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
时间对象: Date()
使用前需要声明/创建对象, var currentTime = new Date();
常用方法:
getYear(); getMonth(); getDate(); getDay(); getHours(); getMinutes
(); getSeconds(); getTime();
setYear(); setMonth(); setDate(); setHours(); setMinutes();
......
在上面的示例中,我们定义了两个语法甘露,一个是Class()函数,一个是New()函数。使用Class()甘露,我们已经可以用非常优雅的格式定义一个类。例如前例中的:
var
Employee
=
Class(Person,
//
派生至Person类
{
......
JavaScript中的Window窗口对象
他是JavaScript中最大的对象,它描述的是一个浏览器窗口。一般要引用它的属性和方法时,不需要用“window.xxx”这种形式,而直接使用“xxx”。一个框架页面也是一个窗口。
Window窗口对象有如下属性:
name 窗口的名称,由打开它的连接(<a target="..." ......