一些javascript技巧

时间:13-08-31 栏目:Javascript 作者:zongyan86 评论:0 点击: 3,062 次

1、字符串转换为数值
常规方法:

JavaScript code

?

1
2
var a = parseFloat("12");
var b = parseInt("34");

可以用

JavaScript code

?

1
2
var a = +("12");
var b = +("34");

2、多维数组
常规方法:

JavaScript code

?

1
2
3
4
5
6
7
var A = new Array(2);
A[0] = new Array(2);
A[1] = new Array(2);
A[0][0] = 1;
A[0][1] = 2;
A[1][0] = 2;
A[1][2] = 2;

可以利用对象的属性轻松实现

JavaScript code

?

1
2
3
4
5
var A = {};
A[[0, 0]] = 1;
A[[0, 1]] = 2;
A[[1, 0]] = 3;
A[[1, 2]] = 4;

3、遍历正则结果
常规方法:

JavaScript code

?

1
2
3
4
5
6
7
var str = "a1b2c3d4e5f6g7h8i9j0k";
var match = str.match(/\d/g, str);
var msg = [];
for(var i = 0; i < match.length; i++) {
    msg.push(match[i]);
}
alert(msg);

可以利用String.replace方法

JavaScript code

?

1
2
3
4
5
6
var str = "a1b2c3d4e5f6g7h8i9j0k";
var msg = [];
str.replace(/\d/g, function() {
    msg.push(arguments[0]);
});
alert(msg);

大家自己又什么发现欢迎交流。

--- 楼下补充和讨论汇总 ---
22楼cuixiping

如果确需copy到一个普通数组,也可以更简单有效的实现:

JavaScript code

?

1
2
3
var str = "a1b2c3d4e5f6g7h8i9j0k";
var msg = str.replace(/\D/g,'').split('');
alert(msg);

我也举一个奇淫巧技:

整数前补0

网上搜的笨方法:

JavaScript code

?

1
2
3
4
5
6
7
8
9
function pad(num, n) {
  var len = num.toString().length;
  while(len <n){
    num = "0" + num;
    len++;
  }
  return num;
}
alert(pad(3,6)); //000003

奇淫巧计法1:

JavaScript code

?

1
2
3
4
function pad(num, n) {
  return (Math.pow(10,n)+num+'').substr(1);  //缺点:位数长度有限,15位以内。
}
alert(pad(3,6)); //000003

奇淫巧计法2:(推荐)

JavaScript code

?

1
2
3
4
5
function pad(num, n) {
   y='00000000000000000000000000000'+num; //爱几个0就几个,自己够用就行
   return y.substr(y.length-n);
}
alert(pad(3,6)); //000003

129楼 lepharye
通过>>>取整

JavaScript code

?

1
2
var test = 3.45;
alert(test>>>0);

web开发分享



声明: 本文由( zongyan86 )原创编译,转载请保留链接: 一些javascript技巧

关注我们