【低代码】使用$、#、*等符号定制数组入参规则

文章介绍了一种简化后台配置的方法,通过定义简单的规则集处理多选入参。使用正则表达式匹配规则符号和参数名,然后根据规则(如数组、逗号分隔值、JSON格式)进行解析。示例代码展示了如何解析参数字符串并应用规则,从而转换参数值。
摘要由CSDN通过智能技术生成

为了简化后台配置、冗合了部分规则用于入参配置。这里是解决低代码多选入参格式的问题的解决方案。

大致思路

定义一个简单的规则集,其中 $ 表示数组,# 表示逗号分隔的值,* 表示 JSON 格式化。使用一个正则表达式(/([$#*])(\w+)/g)来匹配规则符号和参数名。然后,遍历所有匹配项,并将解析后的参数和规则存储到 parsedParams 数组中。

代码示例

// 定义一个简单的规则集
const rules = {
  '$': 'array',
  '#': 'commaSeparated',
  '*': 'jsonFormatted',
};

// 示例参数字符串
const paramsStr = "$param1=#param2=*param3";

// 用于存储解析后的参数和规则的数组
const parsedParams = [];

// 使用正则表达式匹配规则符号和参数名
const regex = /([$#*])(\w+)/g;
let match;

// 遍历所有匹配项
while ((match = regex.exec(paramsStr)) !== null) {
  const symbol = match[1];
  const paramName = match[2];
  const ruleName = rules[symbol];

  // 将解析后的参数和规则存储到数组中
  parsedParams.push({
    paramName,
    ruleName,
  });
}

console.log(parsedParams);

// 模拟参数值
const paramValues = {
  param1: [1, 2, 3],
  param2: "1,2,3",
  param3: '[{"a": 1}, {"b": 2}]',
};

// 应用规则并输出结果
for (const parsedParam of parsedParams) {
  const { paramName, ruleName } = parsedParam;
  const rawValue = paramValues[paramName];
  let result;

  switch (ruleName) {
    case 'array':
      result = rawValue;
      break;
    case 'commaSeparated':
      result = rawValue.split(',').map(Number);
      break;
    case 'jsonFormatted':
      result = JSON.parse(rawValue);
      break;
    default:
      console.error(`Unknown rule: ${ruleName}`);
  }

  console.log(`${paramName} (${ruleName}):`, result);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值