You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现字符串合法值过滤函数 避免复杂if/case条件判断

字符串合法值校验功能实现

核心逻辑

无需编写复杂的if/case判断语句,直接利用编程语言自带的集合成员判断能力即可实现需求。

不同语言实现示例

Ruby(完全匹配你给出的调用语法)

你给出的调用风格为字符串实例直接调用方法,Ruby原生支持给String类扩展实例方法:

# 给String类新增校验方法
class String
  def check_allowed(allowed_list)
    allowed_list.include?(self) ? self : nil
  end
end

调用测试结果:

'test1'.check_allowed(['test1', 'test2', 'test3']) # => "test1"
'test2'.check_allowed(['test1', 'test2', 'test3']) # => "test2"
'test5'.check_allowed(['test1', 'test2', 'test3']) # => nil

如果不想污染全局String类,可以使用更安全的refinements方案:

module StringValidateExtension
  refine String do
    def check_allowed(allowed_list)
      allowed_list.include?(self) ? self : nil
    end
  end
end

# 在需要使用该方法的文件/作用域内引入即可
using StringValidateExtension

Python 实现

如果不想扩展原生字符串类,可以直接写独立工具函数:

def check_allowed(input_str: str, allowed_list: list) -> str | None:
    return input_str if input_str in allowed_list else None

调用测试结果:

check_allowed('test1', ['test1', 'test2', 'test3']) # 返回 'test1'
check_allowed('test5', ['test1', 'test2', 'test3']) # 返回 None

如果要实现字符串直接调用的效果,可以扩展字符串类:

class ValidateStr(str):
    def check_allowed(self, allowed_list: list) -> str | None:
        return self if self in allowed_list else None

# 调用测试
ValidateStr('test1').check_allowed(['test1', 'test2', 'test3']) # 返回 'test1'

JavaScript 实现

// 给String原型加方法
String.prototype.checkAllowed = function(allowedList) {
  return allowedList.includes(this) ? this.toString() : null
}

调用测试结果:

'test1'.checkAllowed(['test1', 'test2', 'test3']) // 返回 'test1'
'test5'.checkAllowed(['test1', 'test2', 'test3']) // 返回 null

内容的提问来源于stack exchange,提问作者sssebaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:18:01