易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript正则表达式实现trim()疑惑

正在看 javascript高级程序设计 ,其中关于分组里面的一句代码不是太理解:
通过配合使用String对象的replace()方法及反向引用,就可以定义自己的trim()方法:
String.prototype.trim = function() {
var reExtraSpace = /^\s+(.*?)\s+$/;
return this.replace(reExtraSpace,"$1");
}
 
一开始怎么也不理解 trim() 方法是怎么起作用的
var sTest = " this is a test ";
alert("[" + sTest + "]"); //outputs " [ this is a test ] "
alert("[" + sTest.trim() + "]"); outputs " [this is a test] " 
后来查了一下 javascript 里面 StringObject 的 replace(regexp,replacement)
方法的第二个参数replacement里面的"$"特殊含义:
$n表示第 n 个子表达式 , 也就是 .*?
原来分组就是正则表达式的子表达式


相关文档:

JavaScript静态方法

       静态方法的实质与任何其他一般函数没有什么不同,最主要的区别在于,其他函数是以对象的静态属性形式存在的。作为一个属性,它们不能在该对象的实例的上下文中访问,而只属于主对象本身的那个上下文中。对习惯了传统类式集成的人来说,这就像类里定义的静态方法。
    ......

javascript操作div中的marginTop

在javascript控制div之间的外边距时,代码写到
document.getElementById("").style.marginTop=20;
这个在IE浏览器中可以,但是在chrome中就不行,这个问题是应该
document.getElementById("").style.marginTop="20px";
各个浏览器中不同的问题要求不等对待,这些天学了div+css在设置各个浏览器是不同的配置,要针对每个 ......

JavaScript对象的废除


ECMAScript有无用存储单元收集程序,当在再没有对对象的引用时,称该对象被废除(dereference)了。
运行无用存储单元收集程序时,所有废除的对象都被销毁。
把对象的所有引用都设置为null,可以强制性的废除对象,例如:
    var oObject = new Object;
    .......
   &n ......

JavaScript的switch语句


ECMAScript中,switch语句可以用于字符串,而且能用不是常量的值说明情况:
    var BLUE="blue" , RED = "red" , GREEN = "green";
    switch(sColor)
    {
        case BLUE:   alert("Blue"); break;
    &nb ......

JavaScript的“带标签”的语句


label:statement
    例:
        start:var iCount = 10;
    标签可以被后来的break语句或continue语句引用。
    例:
        var iNum=0;
        outermost:
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号