• 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 ;
    };

    电脑维修网

  • 相关阅读:
    求100内的数和
    汉诺塔(印度传说)
    ORA-06502:PL/SQL:数字或值错误:数值精度太高
    触发器的编写
    mysql改密码
    LeetCode-238 Product of Array Except Self
    LeetCode-236 Lowest Common Ancestor of a Binary Tree
    LeetCode-233 Number of Digit One
    LeetCode-230 Kth Smallest Element in a BST
    LeetCode-229 Majority Element II
  • 原文地址:https://www.cnblogs.com/frlmoney/p/3054251.html
Copyright © 2020-2023  润新知