三大脚本常用函数对照表
函数功能 | VBScript | JavaS cript | PHP | |
---|---|---|---|---|
数值 | 取绝对值 | Abs(num) | Math.abs(num) | abs(num) |
去位取整 | Fix(num) 或 Int(num) |
Math.round(num) | floor(num) | |
十进制转十六进制 | Hex(num) | dechex(num) | ||
判断数值是否有效 | isNaN(num) | |||
判断变量是否能数值化 | IsNumeric(expr ession) | is_numeric(expr ession) | ||
初始化和生成随机数 | Randomize 与 Rnd[(number)] |
Math.random() | rand([min, ]max) | |
指定小数位数的四舍五入 | Round(num[, digital]) | .toFixed([num]) | round(num[, digital]) | |
字符串 | 大小写不敏感的比较 | str1 = str2 | strcasecmp(str1, str2) 或 strnatcasecmp(str1, str2) 或 strncasecmp(str1, str2, length) 其中 length 是当前环境下的字节数 或 substr_compare(str1, str2, start[, length[, bool]]) 脚本必须兼容 ASCII,不能比较非 ASCII 字符 |
|
取首字符的十进制 ANSI 码 | Asc(str) 脚本必须兼容 ASCII,转非 ASCII 字符时必须兼容 ANSI | ord(str) 脚本必须兼容 ASCII,不能转非 ASCII 字符 | ||
取首字符的十进制 UCS-2 码 | AscW(str) | .charCodeAt(0) | ||
返回字符的当前环境十六进制码 | bin2hex(str) | |||
十进制 ANSI 码转字符 | Chr(num) 脚本必须兼容 ASCII,转非 ASCII 字符时必须兼容 ANSI | chr(num) 脚本必须兼容 ASCII,不能转非 ASCII 字符 | ||
十进制 UCS-2 码转字符 | ChrW(num) | .fromCharCode([num1[, num2[, ...]]]) | ||
拆字符串后以样本为隔合成新串 | chunk_split(str, length, samp) 其中 length 是当前环境下的字节数 | |||
合并字符串成新字符串 | .concat([str1[, str2[, ...]]]) | |||
取字符串中样本的出现次数 | count_chars(str[, mode]) 统计所有单字节目标的出现次数,返回数组 或 substr_count(str, samp[, start[, length]]) 位置是按当前环境下的字节计算 |
|||
返回十六进制 UCS-2 UTF-16 码 | escape(str) 其中 ASCII 数字、字母不转,反操作为 .unescape(str) | |||
内码转换 | iconv(encoding, to_encoding, str) 或 mb_convert_encoding(str, to_encoding[, encoding]) |
|||
取样本在字符串中首次的位置 | InStr([start, ]str, samp[, comp]) | .indexOf(samp[, start]) 正则最好用 .search(rgExp) | strcspn(str, char[, start[, length]]) 只能查找单字节字符,返回的位置是按当前环境下的字节计算 或 stripos(str, samp[, start]) 大小写不敏感,返回的位置是按当前环境下的字节计算 或 strpos(str, samp[, start]) 大小写敏感,返回的位置是按当前环境下的字节计算 |
|
取样本在字符串中末次的位置 | .lastIndexOf(samp[, start]) | 或 strripos(str, samp[, start]) 大小写不敏感,返回的位置是按当前环境下的字节计算 或 strrpos(str, samp[, start]) 大小写敏感,返回的位置是按当前环境下的字节计算 |
||
变换大小写 | LCase(str) 或 UCase(str) |
.toLowerCase() 或 .toUpperCase() |
strtolower(str) 或 strtoupper(str) 或 mb_convert_case(str, mode[, encoding]) 多字节字符可靠 或 mb_convert_kana(str[, mode[, encoding]]) 日文假名专用 或 ucfirst(str) 转换字符串首字母 或 ucwords(str) 转换每个英语单词的首字母 |
|
截取字符串一边指定字符数 | Left(str, length) 或 Right(str, length) |
|||
取字符串字符数 | Len(str) | .length | mb_strlen(str[, encoding]) | |
取字符串在当前环境下的字节数 | strlen(str) | |||
取字符串在 UCS-2 下的字节数 | LenB(str) | |||
截取字符串中指定字符数新串 | Mid(str, start[, length]) | .charAt(index) 或 .slice(start, [end]) 或 .substr(start[, length]) 或 .substring(start, end) |
substr(str, start[, length]) 位置是按当前环境下的字节计算 | |
将字符串中样本替换成新的 | Replace(str, samp, new[, comp[, count[, start]]]) | .replace(samp, new) | str_ireplace(samp, new, str[, count]) 大小写不敏感 或 str_replace(samp, new, str[, count]) 大小写敏感 或 strtr(str, charlist1, charlist2) 大小写敏感,适用于单字节字符批量替换 或 strtr(str, A) 大小写敏感 或 mb_ereg_replace(samp, new, str[, mode]) 默认大小写敏感,多字节字符可靠 |
|
返回指定数量空格 | Space(length) | |||
将字符串以样本为隔拆成数组 | Split(str[, samp[, count[, comp]]]) | .split([samp[, count]]) | explode(samp, str[, count]) | |
将字符串按给定长度拆成数组 | str_split(str, length) 其中 length 是当前环境下的字节数 | |||
返回指定数量某字符或字符串 | String(count, char) | str_repeat(str, count) | ||
截取字符串从样本到结尾成新串 | stristr(str, samp) 大小写不敏感 或 strstr(str, samp) 大小写敏感,别名为 strchr 或 strpbrk(str, charlist) 大小写敏感,样本为字符串 charlist 中任意字符 或 strrchr(str, char) 大小写敏感,取样本最后一次出现的位置为开头 |
|||
字符串左右反向 | StrReverse(str) | strrev(str) 只适用于单字节字符组成的字符串 | ||
将字符串以样本为隔拆成新串 | strtok(str, samp) 利用反复执行获得不同的分割段 | |||
在字符串指定位置替换新内容 | substr_replace(str, new, start[, length]) 位置是按当前环境下的字节计算 | |||
去除空格 | Trim(str) 或 LTrim(str) 或 RTrim(str) |
trim(str[, co de]) 或 ltrim(str[, co de]) 或 rtrim(str[, co de]) |
||
特殊值 | 判断变量是否未初始化 | IsEmpty(expr ession) | isset(expr ession) | |
判断变量是否为空 | IsEmpty(expr ession) | empty(expr ession) | ||
判断变量是否为无效型 | IsNull(expr ession) | is_null(expr ession) | ||
返回常量或变量类型 | TypeName(v) 或 VarType(v) |
gettype(v) | ||
数组 | 初始化数组 | Array([v1[, v2[, ...]]]) | “[v1, v2, v3]” 或 new Array([v1[, v2[, ...]]]) |
array([[i1 => ]v1[, ...]]) 或 array_fill(start, size, v) |
取变量或数组所有元素组新组 | .concat([v1[, v2[, ...]]]) 允许新数组的元素重复 | array_merge([A1[, A2[, ...]]]) 或 array_merge_recursive([A1[, A2[, ...]]]) |
||
对多个数组取差集组成新组 | array_diff([A1[, A2[, ...]]]) 只针对 A1 的差集 | |||
选出含有样本的元素组成子组 | Filter(A, samp[, is[, comp]]) | |||
用回调函数过滤数组成子组 | array_filter(A [, str]) | |||
将数组元素用 str 连成字符串 | Join(A[, str]) | .join(str) | implode(str, A) 别名为 join | |
对多个数组取交集组成新组 | array_intersect([A1[, A2[, ...]]]) 只针对 A1 的交集 | |||
用回调函数变数组元素组新组 | array_map(str, A1[, A2[, ...]]) | |||
若元素数不够则追加相同新元素 | array_pad(A, size, v) | |||
从数组中随机取一个或多个元素 | array_rand(A[, count]) | |||
用回调函数将数组元素合为单值 | array_reduce(A, str[, int]) 其中 int 为临时追加的数组首元素 | |||
数组元素左右反向 | .reverse() | array_reverse(A, TRUE) | ||
取样本元素在数组中对应的键名 | array_search(samp, A[, bool]) 只检测是否存在的话用 in_array(samp, A[, bool]) |
|||
取数组一边首元素,余下成子组 | .shift() 或 .pop() |
array_shift(A) 或 array_pop(A) |
||
从数组中截出一个或多个子组 | .slice(start, [end]) | array_slice(A, start[, size[, bool]) 得到一个同维数组 或 array_chunk(A, size [, bool]) 得到多维数组 |
||
将数组元素打乱随机生成新数组 | shuffle(A) | |||
数组元素排序 | .sort([sortfunction]) | sort(A[, arg]) 或 rsort(A[, arg]) 或 natsort(A) 或 natcasesort(A) 或 asort(A[, arg]) 或 arsort(A[, arg]) 或 array_multisort(A1[, arg1a[, arg1b[, A2[, arg2a[, ...]]]]]) |
||
截数组中一部分并用其它值取代 | .splice(start, size[, v1[, v2[, ...]]]) | array_splice(A1, start[, size[, A2]]) 若 size为负值,意思变为右边开始的 end 值 | ||
取数组元素数 | UBound(A) - LBound(A) + 1 | .length | count(A[, arg]) | |
移除数组中值重复的元素 | array_unique(A) | |||
添加新元素 | .unshift([v1[, v2[, ...]]]) 或 .push([v1[, v2[, ...]]]) |
array_unshift(A, v1[, v2[, ...]]) 或 array_push(A, v1[, v2[, ...]]) |
||
用自定义回调函数改变数组元素 | array _walk(A, str[, v]) 或 array _walk_recursive(A, str[, v]) |
|||
过程 | 生成对函数和子过程的引用 | GetRef(procname) |