VBS当中有Mid函数,一般形式为:Mid(str,start,len)   对应于JS就类似于:str.substr(start,len)

不过区别的是:VBS中start从1开始,而JS从0开始.

<script>
//substr(start,length) : 从字符串的start个开始截取,截取length个
//如果忽略length,则截取到尾.如果length为0或负,则返回空字符串 //从第0个开始截取,截取到尾(相当于作白用功,基本不这么调用!)
var e1 = ( (e1='0123456789|'), e1.substr(0) );
//从第0个开始截取,截取长度为字符串的长度(相当于作白用功,基本不这么调用!)
var e2 = ( (e2='0123456789|'), e2.substr(0,e2.length) );
//从第0个开始截取,截取长度为字符串的长度减1(相当于去掉尾部1个字符)
var e3 = ( (e3='0123456789|'), e3.substr(0,e3.length-1) );
//从第0个开始截取,截取长度为字符串的长度减2(相当于去掉尾部2个)
var e4 = ( (e4='0123456789|'), e4.substr(0,e4.length-2) );
//......
//从第0个开始截取,截取长度为字符串的长度减M(相当于去掉尾部M个)
var M
eN = ( (eN='0123456789|'),(M=5), eN.substr(0,eN.length-M) ); //从第0个开始截取,截取到尾(相当于作白用功,基本不这么调用!)
var s1 = ( (s1='0123456789|'), s1.substr(0) );
//从第1个开始截取,截取到尾(相当于头部去掉1个字符!)
var s2 = ( (s2='0123456789|'), s2.substr(1) );
//从第2个开始截取,截取到尾(相当于头部去掉2个字符!)
var s3 = ( (s3='0123456789|'), s3.substr(2) );
//......
//从第M个开始截取,截取长度为字符串的长度减M(相当于去掉头部M个)
var M
sN = ( (sN='0123456789|'),(M=5), sN.substr(M) );
</script>

如果要精简点调用,那么:

<script>    

    //所以对于原字符串要去掉尾部M个字符时,可以如上掉用,或者:
String.prototype.DeleteEnd = function(M)
{
return this.substr(0,this.length-M);
} //对于去掉前M个的,直接可使用:sN.substr(M)
//当然,如果想对应于DeleteEnd,也可定义:
String.prototype.DeleteFront = function(M)
{
return this.substr(M);
}
</script>

统一一下形式,删除以上的代码,将其替换为如下:

<script>
//所以对于原字符串要去掉头部M1个字符,又要去掉尾部M2个字符时,可以用:
//用Delete命名比较简洁,但用DeleteSides则比较现义
String.prototype.Delete = String.prototype.DeleteSides = function(M1,M2)
{
return this.substr(0,this.length-M2).substr(M1);
}
</script>

调用:

<script>
var str1 = '0123456789|'.Delete(1,1); //'123456789'
var str2 = '0123456789|'.Delete(0,1); //'0123456789'
var str2 = '0123456789|'.Delete(1,0); //'123456789|'
var str2 = '0123456789|'.Delete(2,3); //'234567'
</script>

一般使用Delete扩展函数就可以了(注意扩展函数都以大写命名,区别于原有的函数)

常用笔记: 与VBS当中的Mid()类似的substr()小记的更多相关文章

  1. 常用笔记: JS实现VBS当中的Replace

    <script> //JS实现VBS当中的Replace,替换全部.方法名大写,区别于原方法,与VBS相类似. String.prototype.Replace = function(ol ...

  2. C#可扩展编程之MEF学习笔记(三):导出类的方法和属性

    前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...

  3. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...

  4. git tag 常用笔记

    git tag 常用笔记 查看 tag 列出现有 tag git tag 列出 v1.4.2 相关的 tag git tag -l "v1.4.2" 查看指定 tag 的信息 gi ...

  5. C++ primer plus读书笔记——第10章 对象和类

    第10章 对象和类 1. 基本类型完成了三项工作: 决定数据对象需要的内存数量: 决定如何解释内存中的位: 决定可使用数据对象执行的操作或方法. 2. 不必在类声明中使用关键字private,因为这是 ...

  6. Duilib学习笔记《06》— 窗体基类WindowImpBase

    在前面的例子中我们发现,窗口都是继承CWindowWnd.INotifyUI,然后重载相关函数去实现.显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等… ...

  7. 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...

  8. 01 语言基础+高级:1-3 常用API第一部分_day07【Scanner类、Random类、ArrayList类】

    day07[Scanner类.Random类.ArrayList类] Scanner类Random类ArrayList类 教学目标 能够明确API的使用步骤能够使用Scanner类获得键盘录入数据能够 ...

  9. php错误以及常用笔记

    //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 变量名建 ...

随机推荐

  1. Python学习笔记(十五):类基础

    以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-24 23:59 学习笔记 1,Python中的大多 ...

  2. 修改SharePoint平台登录者显示名称

    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //提升权限,拿系统服务帐号来执行此段代码 ...

  3. read和onload jquery.val

    $(document).load(); 当web页面以及其附带的资源文件,如CSS,Scripts,图片等,加载完毕后执行此方法.常用于检测页面(及其附带资源)是否加载完毕. $(document). ...

  4. CTreeCtrl点击获得选中项

    相应TVN_SELCHANGED可以得到选中的项,在相应函数内如下: LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(p ...

  5. 判断浏览器及设备的打开方式,自动跳转app中

    如果安装了APP则自动条状app,如果没安装则自动跳转下载页面 <head> 放在head中加载 <script> function redirect() { var appU ...

  6. objective -c 知識点

    那么类别与继承相比,有什么缺点吗?类别不可以声明新的成员变量,而且一旦你定义的方法与原始类中的方法名称相同,那么原始方法将被隐藏起来,因为不是继承结构,你不能在类别中的方法使用super 激活原始类的 ...

  7. [原创]linux简单之美(三)

    原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db sectio ...

  8. Top free and open source log management software

    As mentioned in the previous post, in my quest to find an alternative to Kiwi Syslog, I looked at a ...

  9. 使用TWebBrowser组件保存网页为html和mht文件 收藏

    一.保存为HTML文件 uses ActiveX;...procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;var ...

  10. 未能从文本"Template"创建 "System.Windows.DependencyProperty"

    XXXXProperty = DependencyProperty.Register("XXXX", typeof(double), typeof(MyClass), new Pr ...