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 个子表达式 , 也就是 .*?
原来分组就是正则表达式的子表达式
相关文档:
静态方法的实质与任何其他一般函数没有什么不同,最主要的区别在于,其他函数是以对象的静态属性形式存在的。作为一个属性,它们不能在该对象的实例的上下文中访问,而只属于主对象本身的那个上下文中。对习惯了传统类式集成的人来说,这就像类里定义的静态方法。
  ......
//String.prototype使用
//批量替换,比如:str.ReplaceAll([/a/g,/b/g,/c/g],["aaa","bbb","ccc"])
String.prototype.ReplaceAll=function (A,B) {
var C=this;
for(var i ......
引用类型通常叫做类(class),遇到引用值时,所处理的就是对象。
对象的创建:
var o = new Object();
如果没有参数可以省略括号,如:var o = new Object;
Object类:
&nb ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
<head>
<head>
<title> 关于arguments,callee,caller等的测试 &l ......