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

我们会在以后另外用一讲来将一下正则表达式的基本知识和在MooTools下的使用。
在开始之前,我想先花一点时间来看一下字符串函数是怎么调用的。在我的例子中,我是在字符串变量上面直接调用这个方法的,就像下面的这样:
参考代码:

复制代码 代码如下:


var my_text_variable = "Heres some text";
// 结果 字符串变量 方法名
var result_of_function = my_text_variable.someStringFunction();


但是我这样写只是为了能够更清楚地解释它,你应该了解到这些字符串函数也可以直接在字符串上调用,而不需要声明一个变量,就像这样:
参考代码:

复制代码 代码如下:


var result_of_function = "Heres some text".someStringFunction();


注意一下,这个方式在MooTools中的数字处理函数也同样有效:
参考代码:

复制代码 代码如下:


// 注意一下用法,是括号中的数字
// 而不是单引号引起来的字符串
var limited_number = (256).limit(1, 100);


还有,我想再次强调一遍:用JavaScript对输入过滤并不能在数据发送到服务器之前对其进行安全过滤。你在JavaScript中写的所有的一切都可以被你的网页浏览者看到、操控和禁止。我们将在以后讲MooTools的Request类时,对PHP的过滤技术进行一些简单的探讨。同时,继续保持原来要在服务器端做的任何与安全相关的事情,不要依赖JavaScript。
trim()
trim函数提供了一个简单直接的方式来去掉任何你想处理的字符串两端的空白字符。
参考代码:

复制代码 代码如下:


// 这是我们要trim的字符串
var text_to_trim = " \nString With Whitespace ";
// trim后的字符串是"String With Whitespace"
var trimmed_text = text_to_trim.trim();


如果你还没有见过\n,其实这只是一个换行符而已。你可以在一个字符串中使用它来把字符串分割成多行。trim方法把换行符也当作一个空白符,因此它也会把换行符去掉。trim方法唯一不做的一件特别的事情就是:它并不会去掉一个字符串里面的任何多余的空白字符。下面的这个例子展示了trim是怎样处理字符串里面的换行符的:
参考代码:

复制代码 代码如下:


var trimDemo = function(){
// 设置我们要修剪的字符串
var text_to_trim = ' \ntoo much whitespace\n ';
// 对其进行修剪
var trimmed_text = text_to_trim.trim();
// 显示结果
alert('Before Trimming : \n' +
'|-' + text_to_trim + '-|\n\n' +
'After Trimming : \n' +
'|-' + trimmed_text + '-|');
}



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()函数配合使用时,你可以用相对较少的代码来完成一些稍微复杂的任务。举个例子,如果我们把一系列单词放进一个数组,然后一个一个地遍历,我们可以用较少的代码在一个文本的相同区域中寻找多个单词:
参考代码:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjyfff.html