今天在做到邮件的邮件收件人验证的时候需要用到C#中的trimEnd方法移除字符串末尾指定字符。可是ECMAScript(JavaScript)并未有对应的方法,因此只能求助Google,毕竟自己写的执行效率低先不说,还有可能存在bug,最重要的是会有很多臃肿的代码。通过关键字:'js trimEnd'搜索到VEGAS的相关资料.
看来下其大概的介绍,VEGAS是一个基于ECMAScript(JavaScript)和ActionScript的开源框架.个人感觉貌似其对JavaScript的维护逐渐变少,主要是针对ActionScript进行维护。因为下载回来的文件包,没有一个js后缀的。全是as后缀的,因此断定其是针对于ActionScript的框架。最重要的是代码看着怪怪的,毕竟本人没有精力去对flash进行研究。尽管之前有过此种想法,最终因为美术功底的原因而放弃。毕竟现在转行去做美工要学的东西太多。
下边列出VEGAS的相关连接:
写该文的时候一个朋友恰巧问我一元二次方程如何解,我只想对他说:'居然有人问我一元二次方程怎么解,找错人了吧...'!何时我们学习真的是为了让生活更充实而学习,而不是为了应付考试呢?应试教育最终的产物必定是废物。。。靠着老子出国的,往往溜达几年无所事事只好回国。靠自己真才实学的出去以后就不会在回来。前段时间某大学生问我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 ; };