Skip to content

内置对象

MiniPanda 提供的内置对象及其方法。

json 对象

用于 JSON 序列化和反序列化。

方法说明示例
json.parse(str)解析 JSON 字符串json.parse("{\"a\":1}"){a: 1}
json.stringify(value)转换为 JSON 字符串json.stringify({a: 1})"{\"a\":1}"
javascript
// 解析 JSON
var data = json.parse('{"name": "test", "value": 123}')
print(data.name)   // "test"
print(data.value)  // 123

// 序列化为 JSON
var obj = {
    name: "player",
    score: 100,
    items: ["sword", "shield"]
}
var jsonStr = json.stringify(obj)
print(jsonStr)  // {"name":"player","score":100,"items":["sword","shield"]}

date 对象

用于日期和时间操作。

方法说明示例
date.now()当前时间戳(毫秒)date.now()
date.time()当前时间戳(秒,浮点)date.time()
date.year(ts)获取年份date.year(ts)
date.month(ts)获取月份date.month(ts)
date.day(ts)获取日期date.day(ts)
date.hour(ts)获取小时date.hour(ts)
date.minute(ts)获取分钟date.minute(ts)
date.second(ts)获取秒date.second(ts)
date.weekday(ts)获取星期几(0=周日)date.weekday(ts)
date.format(ts, fmt)格式化时间戳date.format(ts, "yyyy-MM-dd")
date.parse(str)解析日期字符串date.parse("2024-01-01")
date.create(y,m,d,h?,m?,s?)创建时间戳date.create(2024, 1, 1)
javascript
// 获取当前时间
var ts = date.now()
print(ts)  // 1704067200000

// 获取时间组件
print(date.year(ts))    // 2024
print(date.month(ts))   // 1
print(date.day(ts))     // 1
print(date.hour(ts))    // 12
print(date.minute(ts))  // 30
print(date.second(ts))  // 45
print(date.weekday(ts)) // 1 (周一)

// 格式化时间
print(date.format(ts, "yyyy-MM-dd"))         // "2024-01-01"
print(date.format(ts, "yyyy-MM-dd HH:mm:ss")) // "2024-01-01 12:30:45"

// 解析日期字符串
var parsed = date.parse("2024-06-15")
print(date.year(parsed))  // 2024
print(date.month(parsed)) // 6

// 创建时间戳
var custom = date.create(2024, 12, 25, 10, 30, 0)
print(date.format(custom, "yyyy-MM-dd HH:mm")) // "2024-12-25 10:30"

regex 对象

用于正则表达式操作。

方法说明示例
regex.test(pattern, str)测试是否匹配regex.test("\\d+", "123")true
regex.match(pattern, str)返回第一个匹配regex.match("\\d+", "a123b")
regex.matchAll(pattern, str)返回所有匹配regex.matchAll("\\d+", "1a2b3")
regex.replace(pattern, str, repl)替换匹配regex.replace("\\d", "a1b2", "x")"axbx"
regex.split(pattern, str)按模式分割regex.split("\\s+", "a b c")["a","b","c"]
javascript
// 测试匹配
print(regex.test("\\d+", "abc123"))  // true
print(regex.test("\\d+", "abc"))     // false

// 获取匹配
var match = regex.match("(\\d+)", "price: 100")
print(match)  // ["100", "100"]

// 获取所有匹配
var matches = regex.matchAll("\\d+", "a1b2c3")
print(matches)  // ["1", "2", "3"]

// 替换
var result = regex.replace("\\d", "a1b2c3", "X")
print(result)  // "aXbXcX"

// 分割
var parts = regex.split("\\s+", "hello   world  test")
print(parts)  // ["hello", "world", "test"]

正则表达式语法

MiniPanda 使用 .NET 正则表达式语法。在字符串中需要双重转义反斜杠:"\\d" 表示 \d

_G 全局表

全局变量表,可用于动态访问和设置全局变量。

javascript
// 设置全局变量
_G.myGlobal = 100
print(_G.myGlobal)  // 100

// 动态访问
var name = "myGlobal"
print(_G[name])  // 100

// 访问内置函数
print(_G.abs(-5))  // 5
print(_G.len([1, 2, 3]))  // 3

// 检查变量是否存在
if _G.someVar != null {
    print("变量存在")
}

Released under the MIT License.