分享好友 编程语言首页 频道列表

VBS中InStrRev函数的第三个参数(Start)使用注意事项

vbs  2015-11-20 09:540

VBS中InStrRev函数使用过不少,但是几乎没有用过第三个参数,今天才发现第三个参数的用法跟我想的不太一样。

文档中是这么描述InStrRev函数的:

复制代码 代码如下:

返回某字符串在另一个字符串中出现的从结尾计起的位置。

InStrRev(string1, string2[, start[, compare]])
参数

string1
必选项。接受搜索的字符串表达式。
string2
必选项。被搜索的字符串表达式。
Start
可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。如果 start 包含 Null,则出现错误
compare
可选项。在计算子字符串时,指示要使用的比较类型的数值。如果省略,将执行二进制比较。有关数值,请参阅“设置”部分。

第三个参数用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。于是我想当然的认为如果不省略(假设为N),则表示从最后第N个字符的位置开始搜索。至于为什么会有这样的思维定势,可能是文档表述不清,也可能是受到了其他语言的影响。

看一个简单的脚本:

复制代码 代码如下:

s = http://jb51.net

n = InStrRev(s, "jb51")
WScript.Echo n

n = InStrRev(s, "jb51", 2)
WScript.Echo n


第一次输出8,这没有问题;而第二次居然输出0,表示没有找到字符串jb51。问题在于第三个参数不是表示从最后第N个字符的位置开始搜索,而是从开始第N个字符开始搜索。

所以InStrRev(s, "jb51", 2)相当于InStrRev(Left(s, 2), "jb51"),当然是搜索不到的。

顺便说一下中文文档里对最后一个参数的描述是错误的:

compare 参数可以有以下值:

vbBinaryCompare 执行二进制比较。

vbDatabaseCompare 执行基于包含在数据库(在此数据库中执行比较)中的信息的比较。

正确的是vbBinaryCompare和vbTextCompare,所以尽量看英文文档,虽然其中的错误也不少。

查看更多关于【vbs】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
VB用API实现各种对话框(总结) vbs简单代码对话框
VB用API实现各种对话框(总结)  各种对话框(总结)标准对话框(SmDialog)Option Explicit''定义一个全局变量,用于保存字体的各种属性Public Type SmFontAttrFontName As String '字体名FontSize As Integer '字体大小FontBod As Boolean '是否黑体FontItalic A

0评论2023-02-09401

脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua
今天一直在研究脚本语言语言之类的问题,上午正好有机会和大家共享一下.     脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua                  工作控制语言和shell    Shell 脚本    此类脚本用于自动

0评论2023-02-09933

VB中的Dictionary对象 vbs dictionary
 VB中的Dictionary对象     Dictionary对象不是VBA或Visual Basic实时语言的具体存在的部分,它是存在于Microsoft Scripting Runtime Library(SCRRUN.DLL)中的一个对象。    为了在应用程序中使用Dictionary对象,就必须利用Reference对话框增加一个

0评论2023-02-09998

vb常用函数一览表 vbs函数大全
常用内部函数数学函数函数功能示例结果说明Abs(x)绝对值Abs(-50.3)50.3 Exp(x)自然指数Exp(2)e^2e(自然对数的底)的某次方Fix(x)取整(取参数的整数部分)Fix(-99.8)-99参数大于 0 时,去掉小数部分;参数小于 0 时,返回大于或等于该参数值Int(x)取整(取小于

0评论2023-02-08959

如何在VB.net中建立word文档 vbs创建文本文档
Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.ClickEnd Subwith:Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.ClickDim oWord As

0评论2023-02-08438

VB中的+与&符号的区别 vb和vbs
字符串运算符和字符串表达式  字符串运算符的作用是将两个字符串连接成一个字符串,经常形象的叫做连接符。  在VB中就提供了两种连接用的字符串运算符 “”、“+” 例如  “VB”+“编程入门” 就等同于“VB编程入门” “VB”“编程入门” 就等同于“V

0评论2023-02-07506

使用 Iisext.vbs 列出Web服务扩展的方法
这篇文章主要介绍了如何使用 iisext.vbs 在本地或远程计算机上列出 Web 服务扩展,需要的朋友可以参考下

0评论2015-11-23132

使用 Iisext.vbs 启用Web服务扩展文件的方法
这篇文章主要介绍了如何使用 iisext.vbs 在本地或远程计算机上启用 Web 服务扩展文件,需要的朋友可以参考下

0评论2015-11-23188

使用 Iisext.vbs 添加Web服务扩展文件的方法
这篇文章主要介绍了如何使用 iisext.vbs 在本地或远程计算机上添加 Web 服务扩展文件,需要的朋友可以参考下

0评论2015-11-23173

使用 Iisext.vbs 删除 Web 服务扩展文件的方法
这篇文章主要介绍了如何使用 iisext.vbs 从本地或远程计算机上删除 Web 服务扩展文件,需要的朋友可以参考下

0评论2015-11-23112

使用 Iisext.vbs 列出 Web 服务扩展文件的方法
这篇文章主要介绍了如何使用 iisext.vbs 在本地或远程计算机上列出 Web 服务扩展文件,需要的朋友可以参考下

0评论2015-11-23149

vbs脚本实现下载jre包并静默安装的代码实例
这篇文章主要介绍了vbs脚本实现下载jre包并静默安装的代码实例,通过本文可以学到VBS中下载远程文件的方法、静默安装jre包的方法,需要的朋友可以参考下

0评论2015-11-20157

Vbscript生成Excel报表的常用操作总结
这篇文章主要介绍了Vbscript生成Excel报表的常用操作总结,涵盖方方面面的Excel操作命令,不容错过,需要的朋友可以参考下

0评论2015-11-20128

MSScriptControl.ScriptControl组件的用法实例
这篇文章主要介绍了MSScriptControl.ScriptControl组件的用法实例,需要的朋友可以参考下

0评论2015-11-20150

MSScriptControl.ScriptControl组件属性、方法、事件介绍
这篇文章主要介绍了MSScriptControl.ScriptControl组件属性、方法、事件介绍,需要的朋友可以参考下

0评论2015-11-2087

VBScript把json字符串解析成json对象的2个方法
这篇文章主要介绍了VBScript把json字符串解析成json对象的2个方法,本文通过MSScriptControl.ScriptControl和jscript实现,需要的朋友可以参考下

0评论2015-11-2085

使用vbscript生成36进制自动增长序号的实现代码
这篇文章主要介绍了使用vbscript生成36进制自动增长序号的实现代码,本文代码也可以在ASP中使用,需要的朋友可以参考下

0评论2015-11-20151

vbscript获取文件的创建时间、最后修改时间和最后访问时间的方法
这篇文章主要介绍了vbscript获取文件的创建时间、最后修改时间和最后访问时间的方法,本文通过FileSystemObject对象实现,需要的朋友可以参考下

0评论2015-11-20140

更多推荐