常用笔记: 与VBS当中的Mid()类似的substr()小记
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()小记的更多相关文章
- 常用笔记: JS实现VBS当中的Replace
<script> //JS实现VBS当中的Replace,替换全部.方法名大写,区别于原方法,与VBS相类似. String.prototype.Replace = function(ol ...
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...
- git tag 常用笔记
git tag 常用笔记 查看 tag 列出现有 tag git tag 列出 v1.4.2 相关的 tag git tag -l "v1.4.2" 查看指定 tag 的信息 gi ...
- C++ primer plus读书笔记——第10章 对象和类
第10章 对象和类 1. 基本类型完成了三项工作: 决定数据对象需要的内存数量: 决定如何解释内存中的位: 决定可使用数据对象执行的操作或方法. 2. 不必在类声明中使用关键字private,因为这是 ...
- Duilib学习笔记《06》— 窗体基类WindowImpBase
在前面的例子中我们发现,窗口都是继承CWindowWnd.INotifyUI,然后重载相关函数去实现.显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等… ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- 01 语言基础+高级:1-3 常用API第一部分_day07【Scanner类、Random类、ArrayList类】
day07[Scanner类.Random类.ArrayList类] Scanner类Random类ArrayList类 教学目标 能够明确API的使用步骤能够使用Scanner类获得键盘录入数据能够 ...
- php错误以及常用笔记
//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 变量名建 ...
随机推荐
- LeetCode: Surrounded Regions [130]
[题目] Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is cap ...
- 《Microsoft SQL Server企业级平台管理实践》笔记
- 页是 SQL Server 中数据存储的基本单位,大小为 8KB. - 区是空间管理的基本单位,8个物理上连续的页的集合(64KB). - 页的类型包括: 1. Data 2. Index 3. ...
- iOS协议
ios中的协议:大家猛一看 感觉挺高深的 其实ios中的协议就是c#,java中的接口 只是变了一个形式: 自我感觉ios中的协议没有c#中的接口好 人家的接口就是固定你的程序内容的 而ios中 ...
- jquery 获取当前元素的索引值
$("#lisa > li").mouseover(function(){ alert($("#lisa > li").length); alert ...
- Centos for php+mysql+apache
一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...
- Bower —— 一个Web的包管理工具
作者:江剑锋 github地址:https://github.com/bower/bower Bower为何物 Bower是一个Web开发的包管理软件.前端开发中,或多或少,都会以来于现成的fra ...
- xunsearch安装与卸载
刚接触xunsearch(迅搜)的时候,我是排斥的.排斥的原因不是因为害怕学习新技术(其实我是对心技术很感兴趣),而是因为:一方面xunsearch是国人开发的,对于国人写的开源产品,我不是太感兴趣( ...
- hdu 5724 Chess 博弈
题目链接 一个n行20列的棋盘. 每一行有若干个棋子. 两人轮流操作, 每人每次可以将一个棋子向右移动一个位置, 如果它右边有一个棋子, 就跳过这个棋子, 如果有若干个棋子, 就将这若干个都跳过. 但 ...
- SQL Server 恢复过程
在恢复过程中.只会分析那些自最后一个检查点之后发生的更改,以确定是否需要重做还是撤销. 在最后一个检查点之前完成的操作都会精确的反应到数据文件中,恢复过程不需要做其它的事. 第一阶段: 分析. 这个阶 ...
- SQL Server save transaction
准备: create table Nums(X int); 目的:只向表中插入一行. --------------------------------------------------------- ...