clean()
为了更有意义,你也许不需要去掉一个字符串里的所有空白符。幸运的是,对于那些你觉得坚强的空白字符,MooTools慷慨地为你提供了clean()方法。
参考代码: text_to_clean = ; cleaned_text = text_to_trim.clean();clean()方法与trim()方法有一点很大的不同。它把你传入的字符里面的空格全部提取出来,而不只是头部和尾部的空白字符。它们意味着字符串中的任何多于一个的空白字符和任何换行符和制表符(tab)。对比一下修剪的结果,我们看看到底是什么意思:
参考代码: cleanDemo = (){ text_to_clean = ; cleaned_text = text_to_clean.clean(); alert( + + text_to_clean + + + + cleaned_text + );}contains()
和trim()以及clean()方法类似,contains()方法做一件很简单的事情,没有任何其他的花架子。它检查一个字符串去看它是否包含一个你要查找的字符串,如果找到了要查找的字符串就返回true,如果没有找到就返回false。
参考代码: string_to_match = ; did_string_match = string_to_match.contains(); did_string_match = string_to_match.contains();这个方法可以在各种情况下派上用场,当你和其他工具,如我们在第三讲中讲到的Array.each()函数配合使用时,你可以用相对较少的代码来完成一些稍微复杂的任务。举个例子,如果我们把一系列单词放进一个数组,然后一个一个地遍历,我们可以用较少的代码在一个文本的相同区域中寻找多个单词:
参考代码: string_to_match = ; word_array = [, , ]; word_array.each((word_to_match){ (string_to_match.contains(word_to_match)){ alert( + word_to_match); }; });我们把它放进一个textbox中,加一点想象,你就可以拥有你自己的脏词(或者其他任何)检测器。
参考代码: containsDemo = (){ banned_words = [, , , ]; textarea_input = $().get(); banned_words.each((banned_word){ (textarea_input.contains(banned_word)){ alert(banned_word + ); }; });}substitute()
substitute()是一个非常强大的工具。我们今天只是讲一下一些关于它的基本知识,substitute的更多强大的功能来自于它的正则表达式的使用,我们会在后面稍微讲一下。然而,仅仅使用这些基本功能你就可以做很多事情了。
参考代码: text_for_substitute = ; substitution_object = { one : , two : , three : }; new_string = text_for_substitute.substitute(substitution_object);事实上你并不需要创建一个substitution_object对象来使用substitute方法,如果你觉得它不合适的话,下面的方法也同样可以实现:
参考代码: text_for_substitute = ; result_text = text_for_substitute.substitute({substitute_key : });你可以通过这个方法做得更多更深入一点,你可以用从一个DOM对象中获得值的函数调用来作为替换项的值,这也是可以的。
参考代码: substituteDemo = (){ original_text = $().get(); new_text = original_text.substitute({ first : $().get(), second : $().get(), third : $().get(), }); $().set(, new_text); $().set(, ); $().set(, );} substituteReset = (){ original_text = ; $().set(, original_text); $().set(, ); $().set(, );}
|- {first} -- {second} -- {third} -|
first_value
second_value
third_value
在今天结束之前,有一个很小的提示,如果你在一个字符串上调用substitute方法,并且不为要替换的关键字提供一个键/值对(key/value pair)对象,那么它将只是简单地删除掉花括号里面的内容。因此,如果你需要保留花括号里面的字符串,请注意不要使用这个方法。举个例子,如下:
参考代码: ().substitute({one : });这将返回substitution text some stuff some more stuff。
更多学习(this guy is amazing)