在奇趣网统计宝的网页机器人里可以使用string.find()函数查找字符串位置,输入以下源码:
var _string = await jsx.loadcodex("return string;");
var a = await _string.find("abcdefg","def");
console.log("a:",a);
运行后输出:
a: 4
也就是找到后会返回所在的开始位置,如果没找到会返回null。
在奇趣网统计宝的网页机器人里可以使用string.find()函数查找字符串位置,输入以下源码:
var _string = await jsx.loadcodex("return string;");
var a = await _string.find("abcdefg","def");
console.log("a:",a);
运行后输出:
a: 4
也就是找到后会返回所在的开始位置,如果没找到会返回null。
在奇趣网统计宝的网页机器人里,string.unescape()函数可以用来解转义字符串,也就是把转义符渲染输出成不可见的东西。
var _string = await jsx.loadcodex("return string;");
var a = await _string.unescape("1111_\t_2222",true,true);
console.log("a:",a);
运行后输出:
a: 1111_ _2222
可以看到“\t”被渲染输出为不可见的长空格。
有时候从别处获取回来的一些字符串中,会存在不可见的转义字符,比如换行符、回车符、制表符、换页符、结束符等,怎么把这些不可见的转义字符转换成可见的转义编码呢?在奇趣网统计宝的网页机器人输入以下源码:
var _string = await jsx.loadcodex("return string;");
var a = await _string.escape("1111_ _2222",true,true);
console.log("a:",a);
运行后输出:
a: 1111_\t_2222
由此可知此字符串里包含了一个横向制作符“\t”,它显示时是一个看不见的长空格。
在奇趣网统计宝的网页机器人里输出以下源码:
var _string = await jsx.loadcodex("return string;");
var a = await _string.endWith("aaaaaaaaaabbbb","bbb");
console.log("a:",a);
var b = await _string.endWith("aaaaaaaaaabbbb","ccc");
console.log("b:",b);
运行后输出:
a: true
b: false
string.endWith()函数的作用就是判断某段字符符是否在另一段字符串的末尾,是则返回真,否则返回假。
有时候从别处获取回来的字符串有回车符、换行符、回车换行符混合使用,怎么样把这三种符全部替换为回车换行符呢?在奇趣网统计宝的网页机器人里可以使用string.crlf()函数:
var _string = await jsx.loadcodex("return string;");
var str = '111 \r 222 \r\n 333 \n 444'
var a = await _string.crlf(str,'\r\n');
var b = await _string.escape(a);
console.log("b:",b);
输出:
b: 111 \r\n 222 \r\n 333 \r\n 444
为什么会有回车符、换行符、回车换行符的不同呢?这就是windows系统、linux系统、IOS系统之间的历史问题了。
在现代信息通信中,用什么方法可以简单方便地知道对方收到的是我发送过去的完整内容而没有错漏呢?使用string.crc32()函数进行循环冗余校验是一种比较好的算法.
在奇趣网统计宝的网页机器人里输入以下源码:
var _string = await jsx.loadcodex("return string;");
var a = await _string.crc32("中国1");
console.log("a:",a);
var b = await _string.crc32("中国2");
console.log("b:",b);
var c = await _string.crc32("中国2");
console.log("c:",c);
运行后输出:
a: 83861905
b: -1644761045
c: -1644761045
我们可以看到,不同的内容它的crc32校验值是不同的,而相同的内容它的crc32校验值是相同的,所以当你把一段信息发送给对方之后,让对方把收到的信息进行crc32校验然后把校验码发给你,就可以知道发送过程中信息有没有发生错漏了.
在编程的过程中,我们会经常遇到变量值可能为null的情况,如果直接用+号连接会报错,所以用string.concat()函数拼接可能为null的变量.
在奇趣网统计宝的网页机器人里输入以下源码:
var _string = await jsx.loadcodex("return string;");
console.log("结果:",await _string.concat ("1","23","abcdefg"));
console.log("结果:",await _string.concat ("你","好",null));
输出:
结果: 123abcdefg
结果: 你好
可以看到这个函数可以很好地兼容拼接的内容为null时的情况,不会因为拼接的变量为null而报错.
在奇趣网统计宝的网页机器人里输入以下源码,
var _string = await jsx.loadcodex("return string;");
console.log("比较结果:",await _string.cmp ("1","1"));
console.log("比较结果:",await _string.cmp ("1","3"));
运行后输出:
比较结果: 0
比较结果: -2
string.collate()函数的作用就是比较两个字符串是否相同,注意区分大小写,即使内容相同但大小写不同,也会被认为是不同.相同则返回0,不相同则返回非0整数.
在奇趣网统计宝的网页机器人里输出以下源码运行:
var _string = await jsx.loadcodex("return string;");
console.log("比较结果:",await _string.cmp ("1","b"));
console.log("比较结果:",await _string.cmp ("1","3"));
console.log("比较结果:",await _string.cmp ("10","30"));
console.log("比较结果:",await _string.cmp ("1","3b"));
console.log("比较结果:",await _string.cmp ("1a","3b"));
可以看到输出:
比较结果: -49
比较结果: -2
比较结果: -2
比较结果: -2
比较结果: -2
string.cmp()的作用就是比较两个字符串.
前面说到 string.charAt(UTF8字符串,字符位置) 函数的功能是返回UTF8编码的文本指定位置的字符,那么在奇趣网统计宝的网页机器人里,string.charCodeAt (UTF8字符串,字符位置)的功能又是什么呢?
我们通过对比发现,charCodeAt比charAt多了Code,这个Code指的是Unicode,string.charCodeAt (UTF8字符串,字符位置)的作用就是返回UTF8编码的文本指定位置的字符的Unicode编码.
我们输入以下源码:
var _string = await jsx.loadcodex("return string;");
console.log("字符的Unicode编码:",await _string.charCodeAt ("123456",2));
console.log("字符的Unicode编码:",await _string.charCodeAt ("abcdef",2));
console.log("字符的Unicode编码:",await _string.charCodeAt ("中国必赢",2));
运行后输出:
字符的Unicode编码: 50
字符的Unicode编码: 98
字符的Unicode编码: 22269
可以看到输出的 50 98 22269 分别是数字2英文b汉字国的Unicode编码.