易截截图软件、单文件、免安装、纯绿色、仅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私有成员

//创建一个新的用户对象,接受一个有许多属性的对象作为参数
function User(properties)
{
    for(var i in properties){(function(which){
    var p=i;
    //创建此属性的一个新的读取器(getter)
    which["get"+p] = function(){
&nbs ......

ASP.NET中前台javascript与后台代码调用

ASP.NET中前台javascript与后台代码调用
2010-03-31 10:01
.net中C#代码与javaScript函数的相互调用问题。
  问:
  1.如何在JavaScript访问C#函数?
  2.如何在JavaScript访问C#变量?
  3.如何在C#中访问JavaScript的已有变量?
  4.如何在C#中访问JavaScript函数?
  问题1答案如下:
  javaScript函 ......

String.prototype实现的一些javascript函数


//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 ......

JavaScript的函数


函数
    即使函数确实有返回值,也不必明确地声明它。该函数只需要使用return运算符后跟要返回的值即可。
    例:
        function sum(iNum1, iNum2)
        {
           ......

JavaScript的运算符


delete只能删除开发者定义的属性或方法,原始的ECMAScript方法不能删除,因为不是开发者定义的,比如:toString()。
        var o = new Object;
        o.name = "Nicholas";
        delete o.name;
   &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号