JavaScript trim() trimStart() trimEnd() by VEGAS

今天在做到邮件的邮件收件人验证的时候需要用到C#中的trimEnd方法移除字符串末尾指定字符。可是ECMAScript(JavaScript)并未有对应的方法,因此只能求助Google,毕竟自己写的执行效率低先不说,还有可能存在bug,最重要的是会有很多臃肿的代码。通过关键字:'js trimEnd'搜索到VEGAS的相关资料.

看来下其大概的介绍,VEGAS是一个基于ECMAScript(JavaScript)ActionScript的开源框架.个人感觉貌似其对JavaScript的维护逐渐变少,主要是针对ActionScript进行维护。因为下载回来的文件包,没有一个js后缀的。全是as后缀的,因此断定其是针对于ActionScript的框架。最重要的是代码看着怪怪的,毕竟本人没有精力去对flash进行研究。尽管之前有过此种想法,最终因为美术功底的原因而放弃。毕竟现在转行去做美工要学的东西太多。

下边列出VEGAS的相关连接:

 官网

JS文件下载列表

写该文的时候一个朋友恰巧问我一元二次方程如何解,我只想对他说:'居然有人问我一元二次方程怎么解,找错人了吧...'!何时我们学习真的是为了让生活更充实而学习,而不是为了应付考试呢?应试教育最终的产物必定是废物。。。靠着老子出国的,往往溜达几年无所事事只好回国。靠自己真才实学的出去以后就不会在回来。前段时间某大学生问我MSN怎么用?想必有脑子的人都会说,跟QQ用法一样吧。顶多注册地址和下载的客户端不同而已。还有其他差异吗?注册地址客户端下载地址均提供给她,注册帐号时也是疑问甚多。最终半个小时的耐心解说过后,问其弄好没有,答曰:“没有,弄不好不弄了!以后工作又用不到,干嘛要学它?”。

以下是以该问题跟我一个同事的聊天记录:

我:
现在的破学生蠢的什么都不会
堂堂大学生居然不会注册MSN和使用它。。。
×××
不是吧,那也太白痴了
现在我估计我侄子都会
我:
我觉得随便拉个初中生都会

玩命的考那些跟钱不挂钩的破证书有意义吗?近期本人在考“系统集成项目管理工程师”,那也是有利可图(到手之后年收入起码增长1万块大洋),不然谁会浪费那么多时间和精力去学那些毫无用处的破玩意!在国内“学以致用”这个词真的就那么难理解吗?想当年小弟数理化也是名列前茅,英语年年年级垫底。如今在社会上摸爬滚打4年有余,连个一元二次方程都搞不定。真不知道以后算法这块如何是好。唯独练就一身Google使用绝技!题外话不多说了,希望看到我这篇文章的大学生能有所感悟。。。也毋枉我写这么多废话!

拿来主义工作中必定靠谱,不过还是建议大家去看看VEGAS的例题,以及其他功能的扩展,对于学习帮助甚大,不然以后老外死绝了作为同行的咱们靠什么吃饭?

如下贴出经过优化后的JS代码:

var FRL = {};

FRL.strings = {};
FRL.strings.whiteSpaceChars = 
[ 
    "\u0009" /*Horizontal tab*/ ,
    "\u000A" /*Line feed or New line*/,
    "\u000B" /*Vertical tab*/,
    "\u000C" /*Formfeed*/,
    "\u000D" /*Carriage return*/,
    "\u0020" /*Space*/,
    "\u00A0" /*Non-breaking space*/,
    "\u1680" /*Ogham space mark*/,
    "\u180E" /*Mongolian vowel separator*/,
    "\u2000" /*En quad*/,
    "\u2001" /*Em quad*/,
    "\u2002" /*En space*/,
    "\u2003" /*Em space*/,
    "\u2004" /*Three-per-em space*/,
    "\u2005" /*Four-per-em space*/,
    "\u2006" /*Six-per-em space*/,
    "\u2007" /*Figure space*/,
    "\u2008" /*Punctuation space*/,
    "\u2009" /*Thin space*/,
    "\u200A" /*Hair space*/,
    "\u200B" /*Zero width space*/,
    "\u2028" /*Line separator*/,
    "\u2029" /*Paragraph separator*/,
    "\u202F" /*Narrow no-break space*/,
    "\u205F" /*Medium mathematical space*/,
    "\u3000" /*Ideographic space*/ 
];
/**
 * 移除字符串中结尾所有的指定字符或字符串
 * <p><b>例题 :</b></p>
 * <pre class="prettyprint">
 * var str ='---hello world---';
 * str = str.trimEnd('-');//---hello world
 * </pre> 
 * @param 需要移除的字符或字符串,其类型可以说字符、字符串、数组。如果参数为null则会使用 <code class="prettyprint">whiteSpaceChars</code>数组中的值.
 * @return 移除后的字符串.
 */

String.prototype.trimEnd = function(chars /*Array*/) /*String*/

{

    if (chars == null) {

        chars = FRL.strings.whiteSpaceChars;

    }



    if (this == null || this == "") {

        return "";

    }



    var i /*int*/;

    var l /*int*/ = this.length;



    for (i = this.length - 1; (i >= 0) && (chars.indexOf(this.charAt(i)) > -1); i--) {

    }



    return this.substring(0, i + 1);

};
/**
 * 移除字符串中开始所有的指定字符或字符串
 * <p><b>例题 :</b></p>
 * <pre class="prettyprint">
 * var str ='---hello world---';
 * str = str.trimStart('-');//hello world---
 * </pre> 
 * @param 需要移除的字符或字符串,其类型可以说字符、字符串、数组。如果参数为null则会使用 <code class="prettyprint">whiteSpaceChars</code>数组中的值.
 * @return 移除后的字符串.
 */

String.prototype.trimStart = function(chars /*Array*/) /*String*/

{

    if (chars == null) {

        chars = FRL.strings.whiteSpaceChars;

    }



    if (this == null || this == "") {

        return "";

    }



    var i /*int*/;

    var l /*int*/ = this.length;



    for (i = 0; (i < l) && (chars.indexOf(this.charAt(i)) > -1); i++) {

    }



    return this.substring(i);

};
/**
 * 移除字符串中开始和结尾所有的指定字符或字符串
 * <p><b>例题 :</b></p>
 * <pre class="prettyprint">
 * var str ='---hello world---';
 * str = str.trim('-');//hello world
 * </pre> 
 * @param 需要移除的字符或字符串,其类型可以说字符、字符串、数组。如果参数为null则会使用 <code class="prettyprint">whiteSpaceChars</code>数组中的值.
 * @return 移除后的字符串.
 */
String.prototype.trim = function( chars /*Array*/ ) /*String*/ 
{
    /*
        ExtJS方案利用正则表达式
    */
    //var re = /^\s+|\s+$/g;
    //return function(){ return this.replace(re, ""); };

    
    if( chars == null )
    {
        chars = FRL.strings.whiteSpaceChars ;
    }
    
    var source = this;

    if ( source == null || source == "" )
    {
        return "" ;
    }
    
    var i /*int*/ ;
    var l /*int*/ ;
    
    ////// start
    
    l = source.length ;
    
    for( i = 0 ; (i < l) && (chars.indexOf( source.charAt( i ) ) > - 1) ; i++ )
    {
    
    }
    
    source = source.substring( i );
    
    ////// end
    
    l = source.length ;
    for( i = source.length - 1; (i >= 0) && (chars.indexOf( source.charAt( i ) ) > - 1) ; i-- )
    {
    }
    source = source.substring( 0, i + 1 ) ;
    
    ////// 
    
    return source ;
};

电脑维修网

原文地址:https://www.cnblogs.com/frlmoney/p/3054251.html