usual's blog.

replace笔记

分类: Javascript   发布于: 2014.08.21, 15:03, by  usual  查看:4,540   |   评论: 发表留言

/*
 * http://meigong.org/?p=491替换为http://meigong.org/491.html
*/
// stringObject.replace(regexp/substr,replacement);

var reg=/(meigong.org\/)\?p=(\d+)/i;
var url="http://meigong.org/?p=491";

var result1=url.replace(reg,"$1$2.html");
console.log(result1);//http://meigong.org/491.html
// $1表示reg中第一个子表达式匹配的值,即(meigong.org\/)匹配的值,返回meigong.org/
// $2表示reg中第二个子表达式匹配的值,即(\d+)匹配的值,返回491
// $n++以此类推

var result2=url.replace(reg,function(all,arg1,arg2,arg3,arg4){
	console.log(arguments[0]);//  meigong.org/?p=491   第一个参数为匹配到的字符串
	console.log(arguments[1]);//  meigong.org/  第二,三个参数为各子表达式匹配的值,类似于$1,$2,可以有0个或更多
	console.log(arguments[2]);//  491
	console.log(arguments[arguments.length-2]);//  7 倒数第二个参数为匹配的字符串在 stringObject 中出现的位置
	console.log(arguments[arguments.length-1]);//  http://meigong.org/?p=491 最后一个参数为 stringObject本身
	return arg1+arg2+".html";
});
console.log(result2);//http://meigong.org/491.html

判断是否为IE

分类: Javascript   发布于: 2014.08.13, 14:02, by  usual  查看:4,748   |   评论: 发表留言

document.all,现在chrome也支持了。
还是ActiveXObject靠谱。

var isIE=!!window.ActiveXObject||"ActiveXObject" in window;

javascript中运算符的优先级

分类: Javascript   发布于: 2012.12.28, 14:02, by  usual  查看:5,757   |   评论: 发表留言

摘自《JavaScript语言精髓与编程实践(第二版)》

序号 运算符 描述
1 . [] () 对象成员存取、数组下标、函数调用等
2 ++ — ~ ! delete new typeof void 一元运算符等
3 * / % 乘法、除法、取模
4 + – + 加法、减法、字符串连接
5 << >> <<< 移位
6 < <= > >= instanceof 序列检测、instanceof
7 = != === !== 等值检测
8 & 按位与
9 ^ 按位异或
10 | 按位或
11 && 逻辑与
12 || 逻辑或
13 ?: 条件
14 = OP= 赋值、运算赋值
15 , 多重赋值

js中操作数组的常用方法.

分类: Javascript   发布于: 2012.10.28, 17:05, by  usual  查看:6,235   |   评论: 发表留言

1.栈方法
push()方法可以接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度.
pop()方法从数组末尾移除最后一项,减少数组的length值,然后返回移除的项.

var colors=[];
var count=colors.push("red","green");	//推入两项
alert(count);	//2				

count=colors.push("black");		//推入另一项
alert(count);	//3

var item=colors.pop();			//取得最后一项
alert(item);	//"black"
alert(colors.length);	//2

2.队列方法
shift()方法能够移除数组中的第一个项并返回移除的项,同时将数组长度减1.
unshift()方法能在数组前端添加任意个项,并返回新数组的长度.

var colors=["red","green","black"];
var item=colors.shift();
alert(item);	//"red"
alert(colors.length);	//2

var count=colors.unshift("red","white");
alert(count);	//4

3.重排序方法 阅读全文..

简单的左右无缝滚动.

分类: Javascript   发布于: 2012.10.24, 21:09, by  usual  查看:6,388   |   评论: 发表留言

简单的左右无缝滚动,demo,能鼠标控制左右滚动.

主要通过改变scrollLeft值来实现.没什么技术含量.做个备份.

HTML结构如下:

<div id="scroll">
   <div id="left"></div>
   <div id="wrap">
       <div class="wrap1">
           <div id="s1">
               <img src="images/1.jpg" alt="" width="200"/>
               <img src="images/2.jpg" alt="" width="200"/>
               <img src="images/3.jpg" alt="" width="200"/>
               <img src="images/4.jpg" alt="" width="200"/>
               <img src="images/5.jpg" alt="" width="200"/>
               <img src="images/6.jpg" alt="" width="200"/>
           </div>
           <div id="s2"></div>
       </div>
   </div>
   <div id="right"></div>
</div>

CSS如下:

body,div{margin:0; padding:0;}
img{border:0 none;}
#scroll{width:830px; margin:50px auto; border:1px solid #ccc; padding:20px 50px; position:relative; border-radius:5px; box-shadow:0 0 10px #999;}
#wrap{width:830px; overflow:hidden;}
.wrap1{width:5000px;}
#wrap img{float:left; margin-right:10px; border-radius:5px; }
#s1,#s2{float:left;}
#left,#right{position:absolute; width:20px; height:80px; top:50%; margin-top:-40px; background:#ccc; cursor:pointer;}
#left:before,#left:after,#right:before,#right:after{position:absolute;width:0; height:0; content: “”; }
#left:before{border-color:#fff #ccc #ccc #fff; border-width:20px 10px; border-style:solid; }
#left:after{border-color:#ccc #ccc #fff #fff; border-width:20px 10px; border-style:solid; bottom:0;}
#right:before{border-color:#fff #fff #ccc #ccc; border-width:20px 10px; border-style:solid; }
#right:after{border-color:#ccc #fff #fff #ccc; border-width:20px 10px; border-style:solid; bottom:0;}
#left{left:15px;}
#right{right:15px;}

JS:
阅读全文..