[关闭]
@lisaisacat 2019-02-20T06:52:03.000000Z 字数 5309 阅读 374

字符串处理模块

函数:ts.json.encode json 串编码

函数名称:json 串编码
函数功能:对 json 串进行编码
函数方法:
str = ts.json.encode(tb)
参数 类型 说明
tb table 编码的内容
返回值 类型 说明
str string 编码后的内容

脚本实例:

  1. local ts = require("ts")--使用扩展库前必须插入这一句
  2. local json = ts.json--使用 JSON 模块前必须插入这一句
  3. local tb = {
  4. ["我"] = "五毛",
  5. ["爱"] = "六块",
  6. meme = {
  7. isArray = true,
  8. 1,0,0,4,6,9,5,1,0,0,
  9. },
  10. nullvalue = null,
  11. }
  12. local jsonstring = json.encode(tb);--把 table 转换成 json 字符串
  13. dialog(jsonstring, 0);

函数:ts.json.decode json 串解码

函数名称:json 串解码
函数功能:对 json 串进行解码
函数方法:
tb = ts.json.encode(str)
参数 类型 说明
str string json 字符串
返回值 类型 说明
tb table 解码后内容

脚本实例:

  1. local ts = require("ts")--使用扩展库前必须插入这一句
  2. local json = ts.json--使用 JSON 模块前必须插入这一句
  3. tb =[[{"meme":[1,0,0,4,6,9,5,1,0,0],"爱":"六块","我":"五毛"}]]
  4. local tmp = json.decode(tb);--把 json 字符串转换为 table 对象
  5. dialog(tmp.meme[2], 0);

函数:tohex 字符串转码

函数名称:字符串转码
函数功能:转码,字符串转换为十六进制编码
函数方法:
string:tohex()
参数 类型 说明
string string 字符串内容
返回值 类型 说明
tb string 十六进制内容

脚本实例:

  1. local ts = require("ts")
  2. local str = "触动精灵"
  3. dialog('"'..str..'" 的 16 进制编码为: <'..str:tohex()..'>', 0) --“触动精灵”的 16 进制编码

函数:fromhex 十六进制转码

函数名称:十六进制转码
函数功能:转码,十六进制编码转换为字符串
函数方法:
tb:fromhex()
参数 类型 说明
tb string 十六进制内容
返回值 类型 说明
string string/nil 字符串内容,非十六进制返回为空

脚本实例:

  1. local ts = require("ts")
  2. local str = "触动精灵"
  3. dialog('"'..str..'" 的 16 进制编码为: <'..str:tohex()..'>', 0) --“触动精灵”的 16 进制编码
  4. dialog('<'..str:tohex()..'> 转换成明文为: "'..str:tohex():fromhex()..'"', 0)--将上一行的 16 进制编码转换为明文字符

函数:aes128_encrypt AES128 编码

函数名称:AES128、编码
函数功能:字符串 AES128编码
函数方法:
tr = msg:aes128_encrypt(key)
参数 类型 说明
msg string 需要编码的内容
key string 密匙
返回值 类型 说明
tr string 编码后的内容

脚本实例:

  1. local ts = require("ts")
  2. local msg = "\5\4\3\2\1\0"
  3. local key = "触动精灵"
  4. local emsg = msg:aes128_encrypt(key)
  5. local emsgb64 = emsg:base64_encode()
  6. dialog('二进制数据<'..msg:tohex()..'> \n AES128 编码为<'..emsg:tohex()..'>', 0)

函数:aes128_decrypt AES128 解码

函数名称:AES128 解码
函数功能:字符串 AES128 解码
函数方法:
tr = tb:aes128_decrypt()
参数 类型 说明
tb string 需要解码的内容
key string 密匙
返回值 类型 说明
tr string 解码后的内容

脚本实例:

  1. local ts = require("ts")
  2. local msg = "\5\4\3\2\1\0"
  3. local key = "触动精灵"
  4. local emsg = msg:aes128_encrypt(key)
  5. local emsgb64 = emsg:base64_encode()
  6. local tmp = emsgb64:base64_decode()
  7. msg = tmp:aes128_decrypt(key)
  8. dialog('"'..emsgb64..'" \n使用 AES128 算法 密钥 "'..key..'" 解码值是 <'..msg:tohex()..'>', 0)

函数:base64_encode BASE64 编码

函数名称:BASE64 编码
函数功能:字符串 BASE64 编码
函数方法:
tr = msg:aes128_encrypt(key)
参数 类型 说明
msg string 需要编码的内容
key string 密匙
返回值 类型 说明
tr string 编码后的内容

脚本实例:

  1. local ts = require("ts")
  2. local msg = "\5\4\3\2\1\0"
  3. local key = "触动精灵"
  4. local emsg = msg:aes128_encrypt(key)
  5. local emsgb64 = emsg:base64_encode()
  6. dialog('二进制数据<'..msg:tohex()..'> \n BASE64 编码为<'..emsgb64..'>',0)

函数:base64_decode BASE64 解码

函数名称:BASE64 解码
函数功能:字符串 BASE64 解码
函数方法:
string = tb:base64_decode()
参数 类型 说明
tb string 需要解码的内容
key string 密匙
返回值 类型 说明
string string 解码后的内容

脚本实例:

  1. local ts = require("ts")
  2. local msg = "\5\4\3\2\1\0"
  3. local key = "触动精灵"
  4. local emsg = msg:aes128_encrypt(key)
  5. local emsgb64 = emsg:base64_encode()
  6. local tmp = emsgb64:base64_decode()
  7. msg = tmp:aes128_decrypt(key)
  8. dialog('"'..emsgb64..'" base64 解码后的数据为 '..tmp:tohex()..'"',0)

函数:split 字符串分割

函数名称:字符串分割
函数功能:对字符串分割
函数方法:
tb = str:split(symbol)
参数 类型 说明
str string 需要分割的内容
symbol string 选填,分割的依据,不填写默认'@'
返回值 类型 说明
tb table 分割形成的表

脚本实例:

  1. local ts = require("ts")
  2. str = " 哈哈,he he,1,3,6 "
  3. new = str:split(",") --将字符串 str 按照 `,` 分割并返回一个 TABLE
  4. dialog(new[2], 0)

函数:rtrim 字符串尾部空白字符过滤

函数名称:字符串过滤
函数功能:对字符串尾部空白字符进行过滤
函数方法:
st = str:rtrim()
参数 类型 说明
str string 需要过滤的内容
返回值 类型 说明
st string 过滤后的内容

脚本实例:

  1. local ts = require("ts")
  2. str = " 哈哈,he he,1,3,6 "
  3. dialog(str:rtrim(), 0) -- 结果 " 哈哈,he he,1,3,6" ,删除字符串尾部的空白字符

名词解析:

空白字符包括:空格、制表符 \t 、换行符 \n\r

函数:ltrim 字符串首部空白字符过滤

函数名称:字符串割过滤
函数功能:对字符串首部空白字符进行过滤
函数方法:
st = str:ltrim()
参数 类型 说明
str string 需要过滤的内容
返回值 类型 说明
st string 过滤后的内容

脚本实例:

  1. local ts = require("ts")
  2. str = " 哈哈,he he,1,3,6 "
  3. dialog(str:ltrim(), 0) -- 结果 "哈哈,he he,1,3,6 " ,删除字符串首部的空白字符

名词解析:

空白字符包括:空格、制表符 \t 、换行符 \n\r

函数:trim 字符串首尾空白字符过滤

函数名称:字符串分割过滤
函数功能:对字符串首尾空白字符进行过滤
函数方法:
st = str:trim()
参数 类型 说明
str string 需要过滤的内容
返回值 类型 说明
st string 过滤后的内容

脚本实例:

  1. local ts = require("ts")
  2. str = " 哈哈,he he,1,3,6 "
  3. dialog(str:trim(), 0) -- 结果 "哈哈,he he,1,3,6" ,删除字符串首尾的空白字符

名词解析:

空白字符包括:空格、制表符 \t 、换行符 \n\r

函数:atrim 字符串所有空白字符过滤

函数名称:字符串过滤
函数功能:对字符串所有空白字符进行过滤
函数方法:
st = str:atrim()
参数 类型 说明
str string 需要过滤的内容
返回值 类型 说明
st string 过滤后的内容

脚本实例:
字符串分割及空白字符过滤

  1. local ts = require("ts")
  2. str = " 哈哈,he he,1,3,6 "
  3. dialog(str:atrim(), 0) -- 结果 "哈哈,hehe,1,3,6" ,删除字符串所有的空白字符

名词解析:

空白字符包括:空格、制表符 \t 、换行符 \n\r

函数:plist.write PLIST 文件写入(仅支持 iOS)

函数名称:PLIST 文件写入
函数功能:PLIST 文件写入
函数方法:
plist.write(plfilename, tmp2)
参数 类型 说明
plfilename string PLIST 文件路径
tmp2 table 需要写入的内容

脚本实例:

  1. --写入键值
  2. local ts = require("ts")
  3. local plist = ts.plist
  4. local plfilename = "/var/mobile/Library/Caches/com.apple.mobile.installation.plist" --设置 plist 路径
  5. local tmp2 = plist.read(plfilename) --读取 PLIST 文件内容并返回一个 TABLE
  6. dialog(tmp2.Metadata.ProductBuildVersion, 0) --显示 ProductBuildVersion 的键值
  7. tmp2["Metadata"]["ProductBuildVersion"] = "havonz" --将表中 ProductBuildVersion 键值改为 havonz
  8. plist.write(plfilename, tmp2) --将修改后的表写入 PLIST 文件

函数:plist.read PLIST 文件读取(仅支持 iOS)

函数名称:PLIST 文件读取
函数功能:PLIST 文件读取
函数方法:
tmp2 = plist.read(plfilename)
参数 类型 说明
plfilename string PLIST 文件路径
返回值 类型 说明
tmp2 table PLIST 文件内容
  1. -读取键值
  2. local ts = require("ts")
  3. local plist = ts.plist
  4. local plfilename = "/var/mobile/Library/Caches/com.apple.mobile.installation.plist" --设置 plist 路径
  5. local tmp2 = plist.read(plfilename) --读取 PLIST 文件内容并返回一个 TABLE

注意事项:

  1. 实例代码仅做为参考,实际调试中请将文件路径替换为实际存在的文件路径。
  2. 对于个别重要的 PLIST 文件,请谨慎使用写入功能或在运行脚本前进行备份。
  3. 需要注意的是,nib 文件作为一种特殊的 PLIST 文件格式,不能被正确的读取。

函数:urlEncoder 编码

函数名称:编码
函数功能:json 串编码
支持版本:扩展库 1.2.1 以上版本
函数方法:
string = urlEncoder(str)
参数 类型 说明
str string json 串编码的内容
返回值 类型 说明
string string 编码后的内容

脚本示例:

  1. require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下
  2. dialog(urlEncoder("触动精灵")) -- 编码

函数:urlDecoder 解码

函数名称:解码
函数功能:json 串解码
支持版本:扩展库 1.2.1 以上版本

函数方法:
str = urlDecoder(string)
参数 类型 说明
string string json 串解码的内容
返回值 类型 说明
str string 解码后的内容

脚本示例:

  1. require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下
  2. string =[[%E8%A7%A6%E5%8A%A8%E7%B2%BE%E7%81%B5]]
  3. -- 解码
  4. str = urlDecoder(string)
  5. dialog(str)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注