在报表开发过程中,有些需求可能无法通过现有的功能来实现,需要开发人员二次开发,以FineReport为例,可以使用网页脚本、API接口等进行深入的开发与控制。
考虑到JS脚本开发的使用较多,这里先先简单介绍如何用JS对字符串进行操作,比如如何判断字符串是否为空,字符串的长度,替换,查找,截取,或者将字符串转换为其他类型等。
1. 字符串的长度
1.1 返回字符串长度
获取字符串长度,可以使用字符串对象的length属性。例如:
var txt= "Hello FR"; txt.length; //返回长度
就会返回8
1.2 字符串的判空
字符串为空,即字符串长度为0,若要实现判空,可以用如下方法:
if(txt.length==0||txt=='') return true; //为空 else return false; //不为空
这里,txt.length==0 或txt==''只需要满足一个即可
2. 字符串的替换
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
这里举个字符串替换的例子:
var txt="Visit FR!"; txt.replace(/Visit/, "Hello");
结果将返回Hello FR!
3. 字符串的查找
search(regexp) 方法用于检索字符串中指定的子字符串,他将返回stringObject 中第一个与 regexp 相匹配的子串的起始位置。
如果没有找到,将返回-1.
但是,search方法无法查找全局,只查找第一个出现的匹配字符串。
4. 字符串的截取
我们可以用substr(start,length)方法来提取一个字符串中的部分内容。
其中start是起始,提取长度为length的新字符串。
举个例子
var txt="Visit FR!"; txt.substr(6,2); //从第六个开始去两个
上述结果将返回FR
字符串下标从0开始,如果start为负,则默认从头开始提取。
5. 字符串的连接
可以通过字符串的concat(str1,str2...) 方法将多个字符串连接起来
比如
var str1="hello"; var str2="FR"; str1.concat(str2);
结果将返回hello FR
6. 字符串类型转换
6.1 将字符串转换为数值
可以直接用强制转换。
如果是转换为浮点数,则为parseFloat(str)
如果转换为整数型,则为parseInt()
6.2 将字符串转换为数组
可以使用字符串的split(separate)方法将字符串分割为数组。
separate为筛选字符串。
比如
var str1="I love FR"; var str2=str1.split(" ");
str2将存储为一个字符串数组,值分别为"I","love","FR"