MooTools教程(9):输入过滤-字符串

2016-02-20 00:40 6 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的MooTools教程(9):输入过滤-字符串懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

今天我们来看一看MooTools给我们提供的额外的一些处理字符函数。这只是MooTools字符串处理中的一部分,并不包含一些神秘的函数(比如toCamelCase())和使用正则表达式处理字符串的函数。我们会在以后另外用一讲来将一下正则表达式的基本知识和在MooTools下的使用。

在开始之前,我想先花一点时间来看一下字符串函数是怎么调用的。在我的例子中,我是在字符串变量上面直接调用这个方法的,就像下面的这样:

参考代码:   my_text_variable = ; result_of_function = my_text_variable.someStringFunction();

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

参考代码:   result_of_function = .someStringFunction();

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

参考代码:   limited_number = ().limit(, );

还有,我想再次强调一遍:用JavaScript对输入过滤并不能在数据发送到服务器之前对其进行安全过滤。你在JavaScript中写的所有的一切都可以被你的网页浏览者看到、操控和禁止。我们将在以后讲MooTools的Request类时,对PHP的过滤技术进行一些简单的探讨。同时,继续保持原来要在服务器端做的任何与安全相关的事情,不要依赖JavaScript。

trim()

trim函数提供了一个简单直接的方式来去掉任何你想处理的字符串两端的空白字符。

参考代码:   text_to_trim =  ; trimmed_text = text_to_trim.trim();

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

参考代码:   trimDemo = (){         text_to_trim =  ;          trimmed_text = text_to_trim.trim();         alert( +            + text_to_trim +  +           +             + trimmed_text + );}

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


  

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

参考代码:  ().substitute({one : });

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)更多学习

(this guy is amazing)

来源:https://www.tulaoshi.com/n/20160220/1632356.html

延伸阅读
Delphi中的字符串 ——摘自网络 一:各种字符串  字符串是Object Pascal所有数据类型中最有用的类型。许多函数以字符串为传递参数。由于在Delphi中字符串的定义和使用有各种方式,包括Pascal中典型的字符串(String),Delphi支持的长字符串(ANSIString),类似于C语言的字符数组(Array of Char),指向字符的...
标签: Web开发
a href="1.htm"251/a 怎么用JS把251替换为 span style='background-color: #99FF99'251/span [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
SELECT   SUBSTR (T.RPT_ID,                 INSTR (T.RPT_ID,',',1,C.LV)+ 1,                 INSTR (T.RPT_ID,',',1,C.LV + 1)- (INSTR (T.RPT_ID,',',1,C.LV)+ 1)) &n...
标签: ASP
  '*************测字符串长度************** Function CheckStringLength(txt) txt=trim(txt) x = len(txt) y = 0 for ii = 1 to x if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) 255 then '如果是汉字 y = y + 2 else y = y + 1 end if next CheckStringLength = y End Function '************* 截取字符串 ************** f...
字符串的近似匹配,就是答应在匹配时有一定的误差,比如在字串“以前高手好久不见”中找“以前是高手”也能成功。具体地说,错误可以有三种类型:加字符(以前也是高手)、漏字符(以前高手)和替换字符(以前石膏手)。下面的函数在text中查找子串pat,最多答应有k个错误。返回的是匹配的终点(我还没想好如何确定起点,呵呵)。 至于...

经验教程

72

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部