常用笔记: 与VBS当中的Mid()类似的substr()小记

时间:2022-08-24 20:25:15

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. 常用笔记&colon; JS实现VBS当中的Replace

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

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

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

  3. qml学习笔记&lpar;二&rpar;:可视化元素基类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&plus;&plus; primer plus读书笔记——第10章 对象和类

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

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

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

  7. 01 语言基础&plus;高级:1-5 常用API第二部分&lowbar;day01&period;【Object类、常用API: Date类、System类、StringBuilder类】

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

  8. 01 语言基础&plus;高级:1-3 常用API第一部分&lowbar;day07【Scanner类、Random类、ArrayList类】

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

  9. php错误以及常用笔记

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

随机推荐

  1. Oracle ORA-07445 evaopn2&lpar;&rpar;&plus;128错误问题

    Oracle ORA-07445 evaopn2()+128错误问题 问题描述 Plsql developer执行一段sql报错: 经查alert log详细报错信息为: ORA-07445: exc ...

  2. 如果使用 Excel5 ,输出的内容应该是GBK编码

    下面就是php导出excel的程序 <?phpini_set("display_errors",1);//是否显示报错信息set_include_path(get_inclu ...

  3. C&plus;&plus; 优先队列

    C++ 优先队列 #include <queue> priority_queue<Type, Container, Functional>:Type为数据的类型,Contain ...

  4. &lbrack;分享&rsqb;4412开发板Android教程——Android开发环境搭建

    分享视频链接:http://pan.baidu.com/s/1o6tgEeQ 本文转载:www.topeetboard.com 下载和安装Android应用的开发环境 新建Android虚拟环境 An ...

  5. SQL备份(全)

    ====================================================================== SQL备份 ======================= ...

  6. 一个简单的创建圆角图像的UIImage扩展实现

    - (UIImage *)roundedCornerImageWithCornerRadius:(CGFloat)cornerRadius { CGFloat w = self.size.width; ...

  7. java 一致性哈希类实例 算法

    package com.hash; import java.util.Collection; import java.util.SortedMap; import java.util.TreeMap; ...

  8. word文档的动态添加数据

    解释:其实主要的思路就是先把word文档转化成xml格式的数据,然后在把xml格式的数据转化成字节流让程序来读取,最后在把字节流转化成xml格式的数据,然后在转化成word文档. poi工具也是这个思 ...

  9. PS调出甜美艺术外景女生照片

    前期思路:拍摄时间大概在下午三四点左右,IOS100 f/1.8 .其实夏天最好的拍摄时间在傍晚五点这样,曝光太强片子会泛白,这张原片首先构图不是很好看,所以我要给它二次构图裁剪一下.下面是裁剪好后的 ...

  10. Day2 CSS

    什么是CSS 层叠样式表(cascading style sheet) 控制页面元素的显示方式.(添加样式) CSS语法 行间样式 行内式是在标记的style属性中设定CSS样式.这种方式没有体现出C ...