网络编程
位置:首页>> 网络编程>> JavaScript>> Mootools 1.2教程(9)——输入过滤第二部分(字符串)(3)

Mootools 1.2教程(9)——输入过滤第二部分(字符串)(3)

作者:Fdream 来源:Fdream博客 发布时间:2008-12-01 12:25:00 

标签:mootools,过滤,字符串,教程,javascript

substitute()

substitute()是一个非常强大的工具。我们今天只是讲一下一些关于它的基本知识,substitute的更多强大的功能来自于它的正则表达式的使用,我们会在后面稍微讲一下。然而,仅仅使用这些基本功能你就可以做很多事情了。

参考代码: 


// 这是要使用substitute方法的文本模板
// 注意,要替代的部分都是用花括号括起来的部分
var text_for_substitute = "One is {one},  Two {two}, Three is {three}.";

// 这个对象包含了要替换的规则
// 没有用引号引起来的部分是搜索项
// 用引号引起来的部分是用来替换搜索项的句子
var substitution_object = {
    one   : 'the first variable', 
    two   : 'always comes second', 
    three : 'getting sick of bronze..'
    };

// 在text_for_substitute上调用substitute方法
// 把substitution_object作为参数传入
// 把替换结果赋值给变量new_string
var new_string = text_for_substitute.substitute(substitution_object); 

// new_string现在的值为"One is the first variable,  Two always comes second, Three is getting sick of bronze..."

事实上你并不需要创建一个substitution_object对象来使用substitute方法,如果你觉得它不合适的话,下面的方法也同样可以实现:

参考代码: 

// 建立要替换的字符串
var text_for_substitute = "{substitute_key} and the original text";
// 把要替换的对象作为参数传给substitute方法
var result_text = text_for_substitute.substitute({substitute_key : 'substitute_value'});
// result_text现在就是"substitute_value and the original text"

你可以通过这个方法做得更多更深入一点,你可以用从一个DOM对象中获得值的函数调用来作为替换项的值,这也是可以的。

参考代码:


var substituteDemo = function(){
    // 从textfield中获得原始的 文本
    var original_text = $('substitute_span').get('html');

    // 用文本框中的值替换textfield中的值
    var new_text = original_text.substitute({
        first  : $('first_value').get('value'),
        second : $('second_value').get('value'),
        third  : $('third_value').get('value'),
    });

    // 用新的文本替换span中的内容
    $('substitute_span').set('html', new_text);


    // 禁用substitute按钮
    // 并启用reset按钮
    $('simple_substitute').set('disabled', true);
    $('simple_sub_reset').set('disabled', false);
}

var substituteReset = function(){
    // 创建一个变量来保存原有的文本
    var original_text = "|- {first} -- {second} -- {third} -|";

    // 用原有的文本来替换span中的内容
    $('substitute_span').set('html', original_text);

    // 禁用reset按钮
    // 并启用substitute
    $('simple_sub_reset').set('disabled', true);
    $('simple_substitute').set('disabled', false);
}

在今天结束之前,有一个很小的提示,如果你在一个字符串上调用substitute方法,并且不为要替换的关键字提供一个键/值对(key/value pair)对象,那么它将只是简单地删除掉花括号里面的内容。因此,如果你需要保留花括号里面的字符串,请注意不要使用这个方法。举个例子,如下:参考代码:

("{one} some stuff {two} some more stuff").substitute({one : 'substitution text'});

这将返回“substitution text some stuff some more stuff”。

更多学习

远程下载地址:下载一个包含你开始所需要的zip包(26.33 KB)

asp之家下载地址:mootorial_day9_filtering_2.zip (26.33 KB)

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com