字符串函数

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

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

asc()

函数说明:

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

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

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

语法:

asc( string{, nPos} )

参数说明:

string

给定的字符串

nPos

整数表达式,缺省为1

返回值:

整数

示例:

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

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

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

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

char()

函数说明:

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

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

语法:

char( int )

参数说明:

int

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

返回值:

字符型

示例:

1char(22269)  返回:''

2char(101)  返回:'e'

fill()

函数说明:

获得ns拼成的字符串

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

语法:

fill(s, n)

参数说明:

s

用于拼成新串的源串

n

新串中包含源串的个数

返回值:

字符型

示例:

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

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

isalpha()

函数说明:

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

语法:

isalpha(s)

参数说明:

s

字符串/数值表达式

返回值:

布尔型

示例:

1isalpha("abc")  返回:true

2isalpha(97)  返回:true

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

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

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

isdigit()

函数说明:

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

语法:

isdigit(string)

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

1isdigit("123")  返回:true

2isdigit(123)  返回:false

3isdigit("abc")   返回:false

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

islower()

函数说明:

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

语法:

islower(string)

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

1islower ("dgfdsgf")  返回:true

2islower (97)   返回:true

3islower ("dsfaAFD")  返回:false

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

isupper()

函数说明:

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

语法:

isupper ( string )

参数说明:

string

字符串/数值表达式

返回值:

布尔型

示例:

1isupper ("ADSFDGKJ")  返回:true

2isupper (85)  返回:true

3isupper ("SDsdsSDAS")  返回:false

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

left()

函数说明:

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

相关函数:

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

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

语法:

left(string, n)

参数说明:

string

获得子串的源串

n

获得子串的长度

返回值:

字符型

示例:

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

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

len()

函数说明:

计算字符串s的长度,字符集cs缺省为GB2312,省略cs时,计算sunicode长度

语法:

len(s,cs)

参数说明:

s

待计算长度的字符串

cs

字符集,可省略

返回值:

整数

示例:

1len("adfg")  返回4

2len("  abd  ")  返回7

3len("报表")   返回2

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

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

like()

函数说明:

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

语法:

like( stringExp, formatExp)

参数说明:

stringExp

字符串的表达式

formatExp

格式串的表达式

返回值:

布尔型

选项:

@c

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

示例:

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

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

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

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

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

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

link()

函数说明:

生成一个url

语法:

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

参数说明:

serviceName

服务名称

jspArgNames jsp

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

jspArgValues jsp

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

reportArgNames

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

reportArgValues

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

返回值:

字符串型

示例:

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

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

lower()

函数说明:

将字符串转成小写

相关函数:

upper()  把字符串转成大写

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

语法:

lower(s)

参数说明:

s

待转成小写的字符串

返回值:

字符型

选项:

@q

引号内的不变

示例:

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

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

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

mid()

函数说明:

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

相关函数:

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

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

语法:

mid(s, start{, end})

参数说明:

s

待获得子串的源串

start

获得子串的起始位置

end

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

返回值:

字符串型

示例:

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

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

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

pos()

函数说明:

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

语法:

pos(s1, s2{, begin})

参数说明:

s1

待查找子串的母串

s2

被查找的子串

begin

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

选项:

@z

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

返回值:

整数

示例:

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

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

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

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

replace()

函数说明:

修改源字符串的子串

语法:

replace( src,a,b)

参数说明:

src

源字符串

a

源字符串的子字符串

b

目标子字符串

返回值:

替换后的字符串

选项:

@q

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

示例:

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

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

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

right()

函数说明:

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

相关函数:

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

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

语法:

right(s, n)

参数说明:

s

待获得子串的源串

n

获得子串的长度

返回值:

字符串型

示例:

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

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

rmquote()

函数说明:

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

语法:

rmquote(exp)

参数说明:

exp

表达式

返回值:

字符串

示例:

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

space()

函数说明:

产生一个空串

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

语法:

space(n)

参数说明:

n

生成空串的长度

返回值:

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

示例:

1space(5)  返回:"  "

split()

函数说明:

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

语法:

split( srcExp,sepExp)

参数说明:

srcExp

待分割的字符串表达式

sepExp

分隔符表达式

返回值:

分割后的字符串列表

选项:

@q

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

@a

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

示例:

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

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

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

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

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

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

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

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

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

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

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

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

trim()

函数说明:

去掉字符串左右的空串

语法:

trim(s)

参数说明:

s

待去掉左右空串的源串

返回值:

字符串型

选项:

@l

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

@r

去掉字符串s右边的空格

 

@a

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

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

示例:

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

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

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

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

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

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

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

upper()

函数说明:

把字符串转成大写

相关函数:

lower()  把字符串转成小写

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

语法:

upper(s)

参数说明:

s

待转成大写的源串

返回值:

字符串型

选项:

@q

引号内的不变

示例:

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

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

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

urlencode()

函数说明:

URL串进行编码处理。

语法:

urlencode(s, cs)

参数说明:

s

URL

cs

字符集

返回值:

字符串型

选项:

@r

解码,urlencode的逆动作

@f

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

示例:

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

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

3urlencode@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

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

返回值:

字符串型

示例:

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

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