字符串函数

阅读(16222) 标签: 字符串函数,

本部分介绍了报表中常用字符串函数的函数说明、语法、参数说明、返回值、选项以及示例。

asc()

函数说明:

取字符串指定位置的字符的unicode值,如果是ascii字符则返回ascii码

(一般来说,英文字符及其扩展字符都是ascii字符,中文、日文、韩文等亚洲字符都是unicode字符,ascii字符为8位,unicode字符为16位(其中有3位用于标志字符类型))

相关函数:char()  根据给定的unicode编码或者ascii码取得其对应的字符

语法:

asc( string{, nPos} )

参数说明:

string

给定的字符串

nPos

整数表达式,缺省为1

返回值:

整数

示例:

例1:asc("def")  返回:100  (ascii)

例2:asc("def",2)  返回:101  (ascii)

例3:asc("中国")  返回:20013  (unicode)

例4:asc("中国",2)  返回:22269  (unicode)

char()

函数说明:

根据给定的unicode编码或者ascii码取得其对应的字符(一般来说,英文字符及其扩展字符都是ascii字符,中文、日文、韩文等亚洲字符都是unicode字符,ascii字符为8位,unicode字符为16位(其中有3位用于标志字符类型))

相关函数:asc()  取字符串指定位置的字符的unicode值,如果是ascii字符则返回ascii码

语法:

char( int )

参数说明:

int

整数表达式,unicode编码或者ascii编码

返回值:

字符型

示例:

例1:char(22269)  返回:'国'

例2:char(101)  返回:'e'

fill()

函数说明:

获得n个s拼成的字符串

相关函数:space()  产生一个空串

语法:

fill(s, n)

参数说明:

s

用于拼成新串的源串

n

新串中包含源串的个数

返回值:

字符型

示例:

例1:fill("1 ",10)  返回:"1 1 1 1 1 1 1 1 1 1 "

例2:fill("a b",10)  返回:"a ba ba ba ba ba ba ba ba ba b"

isalpha()

函数说明:

判定字符串是否是全由字母构成,如果s为整数,则作为ascii 码判断对应的字符是否为字母。

语法:

isalpha(s)

参数说明:

s

字符串/数值表达式

返回值:

布尔型

示例:

例1:isalpha("abc")  返回:true

例2:isalpha(97)  返回:true

例3:isalpha("@#$")  返回:false

例4:isalpha("1@23")  返回:false

例5:isalpha("a@23")  返回:false

isdigit()

函数说明:

判定字符串string是否全由数字构成,如果string为整数,则作为ascii 码,判断对应的字符是否为数字。

语法:

isdigit(string)

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

例1:isdigit("123")  返回:true

例2:isdigit(123)  返回:false

例3:isdigit("abc")  返回:false

例4:isdigit("123ss")  返回:false

islower()

函数说明:

判定字符串是否全由小写字母构成,如果string为整数,则作为ascii 码,判断其对应的字符是否为小写字母

语法:

islower(string)

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

例1:islower ("dgfdsgf")  返回:true

例2:islower (97)  返回:true

例3:islower ("dsfaAFD")  返回:false

例4:islower ("97ffdsf")  返回:false

isupper()

函数说明:

判定字符串是否全由大写字母构成,如果string为整数,则作为ascii 码,判断其对应的字符是否为大写字母。

语法:

isupper ( string )

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

例1:isupper ("ADSFDGKJ")  返回:true

例2:isupper (85)  返回:true

例3:isupper ("SDsdsSDAS")  返回:false

例4:isupper ("8ASDS7")  返回:false

left()

函数说明:

获得源字符串string左边的子串, 其长度为n。当n<0时,n的数值为string串的长度加n值。

相关函数:

mid()  获得源字符串中间的子串

right()  获得源字符串右边的子串

语法:

left(string, n)

参数说明:

string

获得子串的源串

n

获得子串的长度

返回值:

字符型

示例:

例1:left("abcdefg",3)  返回:"abc"

例2:left("abcdefg",-3)  返回:"abcd"

len()

函数说明:

计算字符串s的字节数,字符集cs缺省则计算s的字符数,cs为空时使用GB2312字符集。

语法:

len(s,cs)

参数说明:

s

字符串

cs

字符集,可省略

返回值:

整数

示例:

例1:len("adfg")  返回:4

例2:len("  abd  ")  返回:7

例3:len("报表")   返回:2

例4:len("报表","GB2312")   返回:4

例5:len("报表","UTF-8")   返回:6

例6:len("报表",)       返回:4

like()

函数说明:

判断字符串是否匹配格式串(*匹配0个或多个字符,?匹配单个字符),可以通过转义符匹配"*", 例如:like ("abc*123", "abc\*") 结果为true.

语法:

like( stringExp, formatExp)

参数说明:

stringExp

字符串的表达式

formatExp

格式串的表达式

返回值:

布尔型

选项:

@c

表示匹配时忽略大小写,否则大小写敏感

示例:

例1:like( "abc123", "abc*" )  返回:true

例2:like( "abc123", "abc1?3" )  返回:true

例3:like( "abc123", "abc*34" )  返回:false

例4:like( "abc123", "ABC*" )  返回:false

例5:like("abc*123", "abc\*")  返回:true

例6:like@c("abc123", "ABC*")  返回:true

link()

函数说明:

生成一个url

语法:

link(serviceName{,jspArgNames,jspArgValues{,reportArgNames,reportArgValues}}) 

参数说明:

serviceName

服务名称

jspArgNames jsp

参数名称数组,可为空,元素类型需为字符串型

jspArgValues jsp

参数值数组,需与jspArgNames元素个数相同

reportArgNames

报表参数名称数组,可为空,元素类型需为字符串型

reportArgValues

报表参数值数组,需与reportArgNames元素个数相同

返回值:

字符串型

示例:

例1:link("ServiceName",list("jspArg1","jspArg2"), list("value1",2),"count",5)

返回ServiceName?jasArg1=value1&jspArg2=2&params=count=5

lower()

函数说明:

将字符串转成小写

相关函数:

upper()  把字符串转成大写

wordcap()  将字符串每一个单词的首字母大写

语法:

lower(s)

参数说明:

s

待转成小写的字符串

返回值:

字符型

选项:

@q

引号内的不变

示例:

例1:lower("ABCdef")  返回:"abcdef"

例2:lower("defABC")  返回:"defabc"

例3:lower@q("\'AD\'")  返回:"'AD'"

mid()

函数说明:

返回字符串s中从start位置起长度为len的子串

相关函数:

left()  获得源字符串左边的子串

right()  获得源字符串右边的子串

语法:

mid(s, start{, end})

参数说明:

s

待获得子串的源串

start

获得子串的起始位置

end

获得子串的结束位置,缺省为起始位置到源串串尾的长度

返回值:

字符串型

示例:

例1:mid("abcde",1)  返回:abcde

例2:mid("abcde",1,2)  返回:ab

例3:mid("abcde",3)  返回:cde

pos()

函数说明:

查找母串s1中起始位置为begin的子串s2的位置,找不到返回null

语法:

pos(s1, s2{, begin})

参数说明:

s1

待查找子串的母串

s2

被查找的子串

begin

查找的起始位置,缺省为1

选项:

@z

由begin开始往前查找,缺省从begin开始往后查找

返回值:

整数

示例:

例1:pos("abcdef","def")  返回:4

例2:pos("abcdefdef","def",5)  返回:7

例3:pos("abcdef","defa")  返回:null

例4:pos@z("abcdeffdef ","def",7) 返回:4

replace()

函数说明:

修改源字符串的子串

语法:

replace( src,a,b)

参数说明:

src

源字符串

a

源字符串的子字符串

b

目标子字符串

返回值:

替换后的字符串

选项:

@q

引号里的字符不需要进行替换

示例:

例1:replace("abc'abc'def","a","China")  返回:"Chinabc'Chinabc'def"

例2:replace ("abc'abc'def","a","China")  返回:"Chinabc'Chinabc'def"

例3:replace@q ("abc'abc'def","a","China")  返回:"Chinabc'abc'def"

right()

函数说明:

获得字符串s右边长度为n的子串。当n<0时,n的数值为string串的长度加n值。

相关函数:

left()  获得源字符串左边的子串

mid()  获得源字符串中间的子串

语法:

right(s, n)

参数说明:

s

待获得子串的源串

n

获得子串的长度

返回值:

字符串型

示例:

例1:right("abced",2)  返回:"ed"

例2:right("abced",-2)  返回:"ced"

rmquote()

函数说明:

删除表达式里的转义符和最外层引号,包括单引号和双引号

语法:

rmquote(exp)

参数说明:

exp

表达式

返回值:

字符串

示例:

例1:rmquote(arg1)  返回:s'd'sdwewe,变量arg1的值为"s'd'sd\nwewe"

space()

函数说明:

产生一个空串

相关函数:fill()  获得n个s拼成的字符串

语法:

space(n)

参数说明:

n

生成空串的长度

返回值:

字符串型,获得n个空格拼成的字符串

示例:

例1:space(5)  返回:"  "

split()

函数说明:

将字符串按分割符分割成多个子串

语法:

split( srcExp,sepExp)

参数说明:

srcExp

待分割的字符串表达式

sepExp

分隔符表达式

返回值:

分割后的字符串列表

选项:

@q

解析引号、括号里的分隔符,缺省不解析

@a

保留子串左右两边的空串,缺省去掉子串左右两边的空串

示例:

例1:split("ab;cd;ef;tg;tt",";")

返回数组:["ab","cd","ef","tg","tt"]

例2:split("ab;c'd;e'f;tg;tt",";")

返回数组:["ab","c'd;e'f","tg","tt"] 不解析引号里的分隔符

例3:split("ab;c[d;e]f;tg;tt",";")

返回数组:["ab","c[d;e]f","tg","tt"] 不解析括号里的分隔符

例4:split@q("ab;c'd;e'f;tg;tt",";")

返回数组:["ab","c'd","e'f","tg","tt"] 解析引号里的分隔符

例5:split@q("ab;c[d;e]f;tg;tt",";")

返回数组:["ab","c[d","e]f","tg","tt"] 解析括号里的分隔符

例6:split@a(" ab ,cd,ef,  tg,tt  ",",")

返回数组:[" ab ","cd","ef","  tg","tt  "] 保留子串左右两边的空串

trim()

函数说明:

去掉字符串左右的空串

语法:

trim(s)

参数说明:

s

待去掉左右空串的源串

返回值:

字符串型

选项:

@l

去掉字符串左边的空格,参数为字母l

@r

去掉字符串s右边的空格

 

@a

缺省为同时去掉左右两边的空串去掉

去除所有多余空白符。s串内包含一个或连续多个空白符时只保留一个,符号与文字间的空白符删除,引号内空白符保留。

示例:

例1:trim("  abc  ")  返回:"abc"

例2:trim("  a  bc  ")  返回:"a  bc"

例3:trim@l(" def abc ")  返回: "def abc "

例4:trim@r(" abc def ")  返回:" abc def"

例5:trim@a("a  bc")  返回:"a bc"

例6:trim@a("a\'  bc\' ")  返回:"a'  bc'"

例7:trim@a("abc  !")  返回:"abc!"

upper()

函数说明:

把字符串转成大写

相关函数:

lower()   把字符串转成小写

wordcap()   将字符串每一个单词的首字母大写

语法:

upper(s)

参数说明:

s

待转成大写的源串

返回值:

字符串型

选项:

@q

引号内的不变

示例:

例1:upper("ABCdef")  返回:"ABCDEF"

例2:upper("abcDEF")  返回:"ABCDEF"

例3:upper@q("\'abCD\'")  返回:"'abCD'"

urlencode()

函数说明:

将URL串进行编码处理。

语法:

urlencode(s, cs)

参数说明:

s

URL串

cs

字符集

返回值:

字符串型

选项:

@r

解码,urlencode的逆动作

@f

表示要转码的串是个完整的url,使用该选项会将url拆成各部分,对每部分进行url转码

示例:

例1:urlencode ("哥哥","utf8")  返回:"%E5%93%A5%E5%93%A5"

例2:urlencode@r("%E5%93%A5%E5%93%A5","utf8")  返回:"哥哥"

例3:urlencode@f("http://localhost:6868/demo/测试/test.jpg","utf8") 

返回:" http://localhost:6868/demo/%E6%B5%8B%E8%AF%95/test.jpg"

 

wordcap()

函数说明:

将字符串每一个单词的首字母大写

相关函数:

upper()  把字符串转成大写

lower()  把字符串转成小写

语法:

wordcap(s)

参数说明:

s

需要将单词首字母大写的源串

返回值:

字符串型

示例:

例1:wordcap("I love my country")  返回:"I Love My Country"

例2:wordcap("she is beautiful")  返回:"She Is Beautiful"