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

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

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

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

clean()

为了更有意义,你也许不需要去掉一个字符串里的所有空白符。幸运的是,对于那些你觉得坚强的空白字符,MooTools慷慨地为你提供了clean()方法。

参考代码:

// 这是我们要修剪的字符串
var text_to_clean =  "    \nString     \nWith    Lots \n \n    More     \nWhitespace  \n   ";
// clean以后的字符串是"String With Lots More Whitespace"
var cleaned_text  = text_to_trim.clean();

clean()方法与trim()方法有一点很大的不同。它把你传入的字符里面的空格全部提取出来,而不只是头部和尾部的空白字符。它们意味着字符串中的任何多于一个的空白字符和任何换行符和制表符(tab)。对比一下修剪的结果,我们看看到底是什么意思:

参考代码: 


var cleanDemo = function(){
    // 设置我们要修剪的字符串
    var text_to_clean =  '            too\n       much\n       whitespace              ';

    // clean该字符串
    var cleaned_text = text_to_clean.clean();

    // 显示结果
    alert('Before Cleaning : \n' + 
          '|-' + text_to_clean + '-|\n\n' +
          'After Cleaning : \n' +  
          '|-' + cleaned_text + '-|');
}

 

contains()

和trim()以及clean()方法类似,contains()方法做一件很简单的事情,没有任何其他的花架子。它检查一个字符串去看它是否包含一个你要查找的字符串,如果找到了要查找的字符串就返回true,如果没有找到就返回false。

参考代码:


// 我们要在这个字符串里面查找
var string_to_match = "Does this contain thing work?";

// 找'contain', did_string match为true
var did_string_match = string_to_match.contains('contain');

// 找'propane', did_string_match为 false
did_string_match = string_to_match.contains('propane');

这个方法可以在各种情况下派上用场,当你和其他工具,如我们在第三讲中讲到的Array.each()函数配合使用时,你可以用相对较少的代码来完成一些稍微复杂的任务。举个例子,如果我们把一系列单词放进一个数组,然后一个一个地遍历,我们可以用较少的代码在一个文本的相同区域中寻找多个单词:

参考代码: 

string_to_match = "string containing whatever words you want to try to match";
    word_array = ['words', 'to', 'match'];
    // 把数组中的每一个单词作为变量传进去
    word_array.each(function(word_to_match){
        // 寻找当前的单词
        if (string_to_match.contains(word_to_match)){
            alert('found ' + word_to_match);
        };
    });

我们把它放进一个textbox中,加一点想象,你就可以拥有你自己的脏词(或者其他任何)检测器。

参考代码: 


var containsDemo = function(){
    // 把我们要禁止的词放进一个数组
    var banned_words = ['drat', 'goshdarn', 'fiddlesticks', 'kumquat'];    

    // 获得文本域中的内容
    var textarea_input = $('textarea_1').get('value');

    // 枚举过滤词中的每一个词
    banned_words.each(function(banned_word){
        // 在文本域内容中查找当前的过滤词
        if (textarea_input.contains(banned_word)){
            // 告诉用户不能使用那个单词
            alert(banned_word + ' is not allowed');
        };
    });
}

0
投稿

猜你喜欢

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