JSON处理

var obj := json.parse('{"name":"张三","age":18}');
writeln(obj.name);                  // 张三
writeln(obj.age.TypeName());         // Integer
var email := obj.email ?? '未设置';   // 默认值操作符

// 遍历JSON
for var i := 0 to obj.length()-1 do
    writeln(obj.ElementName(i)+':'+obj[i]);

正则表达式

// 手机号校验
var phone := '13800138000';
if regex.ismatch(phone, '^1[3-9]\d{9}$') then
    writeln('手机号正确');

// 提取域名
var url := 'https://webpascal.com/docs';
var domain := regex.match(url, '(?<=https://).*?(?=/)');
writeln('域名:'+domain);

数据库操作

include('/conn.cfg');
var res := json.parse(db.query('mydb','SELECT * FROM users WHERE id=:p1',1));
if res.code = 200 then
    for var i:=0 to res.data.length()-1 do
        writeln(res.data[i].name);
需先配置 conn.cfg 数据库连接,示例:
// SQLite
db.conn('mydb', 'DriverID=SQLite;Database=.\sqlite.db');

// MySQL
db.conn('mydb', 'DriverID=MySQL;Server=127.0.0.1;Database=test;User_name=root;Password=123456');

// SQL Server (信任连接)
db.conn('mydb', 'DriverID=MSSQL;Server=.;Database=test;OSAuthent=Yes');

JWT认证

var token := jwt.encode('mySecret','{"userId":1}',7);
if jwt.verify('mySecret',token) then
    writeln('验证通过');

算法演示

MD5 哈希

var md5Str := hash.hash('123456', hMD5);
writeln('MD5: ' + md5Str);

Base64 编码

var base64Str := base64.encode('abc测试123');
writeln('Base64: ' + base64Str);
var decoded := base64.decode(base64Str);
writeln('解码后: ' + decoded);

DES 加密

var desKey := '12345678';
var plainText := '敏感数据';
var desEnc := des.encode(plainText, desKey);
var desDec := des.decode(desEnc, desKey);
writeln('加密: ' + desEnc);
writeln('解密: ' + desDec);

SHA256 哈希

var sha256Str := hash.hash('123456', hSHA256);
writeln('SHA256: ' + sha256Str);

编码转换

URL 编码/解码

var urlStr := 'abc 测试123';
var encoded := urlencode.encode(urlStr);
var decoded := urlencode.decode(encoded);
writeln('原始: ' + urlStr);
writeln('编码: ' + encoded);
writeln('解码: ' + decoded);

Unicode 转 ANSI

var unicodeStr := '"abc\"\u6D4B\u8BD5\"123"';
var ansiStr := unicodetoansi(unicodeStr);
writeln('Unicode: ' + unicodeStr);
writeln('ANSI: ' + ansiStr);

HTTP客户端

HTTP GET

var getResult := http.get('https://api.example.com/users?id=123', '', '');
writeln(getResult);

HTTP POST

var postResult := http.post('https://api.example.com/users', '', 'name=张三&age=18');
writeln(postResult);

HTTP JSON

var jsonData := '{"name":"张三","age":18}';
var jsonResult := http.json('https://api.example.com/users', '', jsonData);
writeln(jsonResult);

文件转存 (getfile)

var savedPath := http.getfile('https://example.com/image.jpg');
writeln('<img src="' + savedPath + '">');

工具集

验证码

writeln('<img src="' + captcha('1234',80) + '">');

二维码

writeln('<img src="' + QRCode('https://webpascal.com',80,2) + '">');

时间处理

var now := FormatDateTime('YYYY-MM-DD HH:NN:SS', Now);
var ts := LocalDateTimeToUnixTime(Now);

雪花算法

var id := Snowflake(1,2);  // 数据中心1,机器2