目录搜索
JScript 用户指南Jscript 基础编写 JScript 代码JScript 的变量JScript 的数据类型JScript 的运算符控制程序的流程JScript 函数Jscript对象创建自己的对象内部对象JScript 保留关键字高级 JScript创建高级对象递归变量范围复制、传递和比较数据使用数组特殊字符脚本问题解答条件编译条件编译变量在浏览器中显示信息使用消息框语言参考特性信息Microsoft JScript 特性 - ECMAMicrosoft JScript 特性 - 非-ECMAJScript 字母顺序的关健字列表JScript 错误JScript 运行时错误JScript 语法错误JScript 函数GetObject 函数ScriptEngine 函数ScriptEngineBuildVersion 函数ScriptEngineMajorVersion 函数ScriptEngineMinorVersion 函数JScript 方法A-Eabs 方法acos 方法anchor 方法apply 方法asin 方法atan 方法atan2 方法atEnd 方法big 方法blink 方法bold 方法call 方法ceil 方法charAt 方法charCodeAt 方法compile 方法concat 方法 (Array)concat 方法 (String)cos 方法decodeURI 方法decodeURIComponent 方法dimensions 方法encodeURI 方法encodeURIComponent 方法escape 方法eval 方法exec 方法exp 方法F-Ifixed 方法floor 方法fontcolor 方法fontsize 方法fromCharCode 方法getDate 方法getDay 方法getFullYear 方法getHours 方法getItem 方法getMilliseconds 方法getMinutes 方法getMonth 方法getSeconds 方法getTime 方法getTimezoneOffset 方法getUTCDate 方法getUTCDay 方法getUTCFullYear 方法getUTCHours 方法getUTCMilliseconds 方法getUTCMinutes 方法getUTCMonth 方法getUTCSeconds 方法getVarDate 方法getYear 方法indexOf 方法isFinite 方法isNaN 方法italics 方法item 方法J-Rjoin 方法lastIndexOf 方法lbound 方法link 方法localeCompare 方法log 方法match 方法max 方法min 方法moveFirst 方法moveNext 方法parse 方法parseFloat 方法parseInt 方法pop 方法pow 方法push 方法random 方法replace 方法reverse 方法round 方法Ssearch 方法setDate 方法setFullYear 方法setHours 方法setMilliseconds 方法setMinutes 方法setMonth 方法setSeconds 方法setTime 方法setUTCDate 方法setUTCFullYear 方法setUTCHours 方法setUTCMilliseconds 方法setUTCMinutes 方法setUTCMonth 方法setUTCSeconds 方法setYear 方法shift 方法sin 方法slice 方法 (Array)slice 方法 (String)small 方法sort 方法splice 方法split 方法sqrt 方法strike 方法sub 方法substr 方法substring 方法sup 方法T-Ztan 方法test 方法toArray 方法toDateString 方法toExponential 方法toFixed 方法toGMTString 方法toLocaleDateString 方法toLocaleLowerCase 方法toLocaleString 方法toLocaleTimeString 方法toLocaleUpperCase 方法toLowerCase 方法toPrecision 方法toString 方法toTimeString 方法toUpperCase 方法toUTCString 方法ubound 方法unescape 方法unshift 方法UTC 方法valueOf 方法JScript 对象ActiveXObject 对象Array 对象Boolean 对象Date 对象Enumerator 对象Error 对象Function 对象Global 对象Math 对象Number 对象Object 对象RegExp 对象正则表达式对象String 对象VBArray 对象JScript 运算符通用信息运算符优先级运算符总结加法赋值运算符 (+=)加法运算符 (+)赋值运算符 (=)按位“与”赋值运算符 (&=)按位“与”运算符 (&)按位左移运算符 (<<)按位“非”运算符 (~)按位“或”赋值运算符 (|=)按位“或”运算符 (|)按位右移运算符 (>>)按位“异或”赋值运算符 (^=)按位“异或”运算符 (^)逗号运算符 (比较运算符复合赋值运算符条件(三目)运算符 (?:)delete 运算符除法赋值运算符 (/=)除法运算符 (/)in 运算符递增 (++) 和递减 (--) 运算符instanceof 运算符左移赋值运算符 (<<=)逻辑“与”运算符 (&&)逻辑“非”运算符 (!)逻辑“或”运算符 (||)取余赋值运算符 (%=)取余运算符 (%)乘法赋值运算符 (*=)乘法运算符 (*)new 运算符右移赋值运算符 (>>=)减法赋值运算符 (-=)减法运算符 (-)typeof 运算符无符号右移运算符 (>>>)无符号右移赋值操作 (>>>=)void 运算符JScript 属性$1...$9 属性arguments 属性caller 属性constructor 属性description 属性E 属性global 属性hasOwnProperty 方法ignoreCase 属性index 属性Infinity 属性input 属性($_)isProptotyeOf 方法lastIndex 属性length 属性 (Array)length 属性 (Function)length 属性 (String)LN10 属性LN2 属性LOG10E 属性LOG2E 属性MAX_VALUE 属性message 属性MIN_VALUE 属性multiline 属性name 属性NaN 属性NaN 属性 (Global)NEGATIVE_INFINITY 属性number 属性PI 属性POSITIVE_INFINITY 属性propertyIsEnumerable 属性prototype 属性source 属性SQRT1_2 属性SQRT2 属性undefined 属性JScript 语句@cc_on 语句@if 语句@set 语句break 语句Comment 语句continue 语句do...while 语句for 语句for...in 语句function 语句if...else 语句Labeled 语句return 语句switch 语句this 语句throw 语句try...catch...finally 语句var 语句while 语句with 语句FileSystemObject 用户指南FileSystemObject 对象模型FileSystemObject 和 Scripting 运行时库参考的介绍FileSystemObject 对象设计 FileSystemObject处理驱动器和文件夹处理文件FileSystemObject 示例代码Scripting 运行时库参考脚本运行时方法Add 方法 (Dictionary)Add 方法 (Folders)BuildPath 方法Close 方法Copy 方法CopyFile 方法CopyFolder 方法CreateFolder 方法CreateTextFile 方法Delete 方法DeleteFile 方法DeleteFolder 方法DriveExists 方法Exists 方法FileExists 方法FolderExists 方法GetAbsolutePathName 方法GetBaseName 方法GetDrive 方法GetDriveName 方法GetExtensionName 方法GetFile 方法GetFileName 方法getFileVersion 方法GetFolder 方法GetParentFolderName 方法GetSpecialFolder 方法GetTempName 方法Items 方法Keys 方法Move 方法MoveFile 方法MoveFolder 方法OpenAsTextStream 方法OpenTextFile 方法Read 方法ReadAll 方法ReadLine 方法Remove 方法RemoveAll 方法Skip 方法SkipLine 方法Write 方法WriteBlankLines 方法WriteLine 方法脚本运行时对象Dictionary 对象Drive 对象Drives 集合File 对象Files 集合FileSystemObject 对象Folder 对象Folders 集合TextStream 对象脚本运行时属性AtEndOfLine 属性AtEndOfStream 属性Attributes 属性AvailableSpace 属性Column 属性CompareMode 属性Count 属性DateCreated 属性DateLastAccessed 属性DateLastModified 属性Drive 属性DriveLetter 属性Drives 属性DriveType 属性Files 属性FileSystem 属性FreeSpace 属性IsReady 属性IsRootFolder 属性Item 属性Key 属性Line 属性Name 属性ParentFolder 属性Path 属性RootFolder 属性SerialNumber 属性ShareName 属性ShortName 属性ShortPath 属性Size 属性SubFolders 属性TotalSize 属性Type 属性VolumeName 属性正则表达式简介正则表达式早期起源使用正则表达式正则表达式语法建立正则表达式优先权顺序普通字符特殊字符非打印字符字符匹配限定符定位符选择和编组后向引用
文字


定位符

到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题。出现的任何一个字符串 'Chapter' 后跟一个空格和一个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用。由于真正的章节标题总是出现在一行的开始,因此需要设计一个方法只查找标题而不查找交叉引用。

定位符提供了这个功能。定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。下表包含了正则表达式及其含义的列表:

字符 描述
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界。

不能对定位符使用限定符。因为在一个换行符或者单词边界的前面或后面不会有连续多个位置,因此诸如 '^*' 的表达式是不允许的。

要匹配一行文字开始位置的文字,请在正则表达式的开始处使用 '^' 字符。不要把 '^' 的这个语法与其在括号表达式中的语法弄混。它们的语法根本不同。

要匹配一行文字结束位置的文字,请在正则表达式的结束处使用 '$' 字符。

要在查找章节标题时使用定位符,下面的 JScript 正则表达式将匹配位于一行的开始处最多有两个数字的章节标题:

/^Chapter [1-9][0-9]{0,1}/

VBScript 中相同功能的正则表达式如下:

"^Chapter [1-9][0-9]{0,1}"

一个真正的章节标题不仅出现在一行的开始,而且这一行中也仅有这一个内容,因此,它必然也位于一行的结束。下面的表达式确保所指定的匹配只匹配章节而不会匹配交叉引用。它是通过创建一个只匹配一行文字的开始和结束位置的正则表达式来实现的。

/^Chapter [1-9][0-9]{0,1}$/

对 VBScript 则使用:

"^Chapter [1-9][0-9]{0,1}$"

匹配单词边界有少许不同,但却给正则表达式增加了一个非常重要的功能。单词边界就是单词和空格之间的位置。非单词边界就是其他任何位置。下面的 JScript 表达式将匹配单词 'Chapter' 的前三个字符,因为它们出现在单词边界后:

/\bCha/

对 VBScript 为:

"\bCha"

这里 '\b' 操作符的位置很关键。如果它位于要匹配的字符串的开始,则将查找位于单词开头处的匹配;如果它位于改字符串的末尾,则查找位于单词结束处的匹配。例如,下面的表达式将匹配单词 'Chapter' 中的 'ter',因为它出现在单词边界之前:

/ter\b/

以及

"ter\b"

下面的表达式将匹配 'apt',因为它位于 'Chapter' 中间,但不会匹配 'aptitude' 中的'apt':

/\Bapt/

以及

"\Bapt"

这是因为在单词 'Chapter' 中 'apt' 出现在非单词边界位置,而在单词 'aptitude' 中位于单词边界位置。非单词边界操作符的位置不重要,因为匹配与一个单词的开头或结尾无关。

上一篇:下一篇: