如何修改代码拦截1:后含3个及以上9的算式避免Math.js崩溃
解决方案
你可以通过正则表达式替换原有的硬编码匹配逻辑,实现对冒号后≥3个9的算式的批量拦截,修改后的代码如下:
try { // 匹配规则:算式中冒号后出现连续3个及以上9时触发拦截 if (/:\d*9{3,}\d*/.test(args)) return message.channel.send('That question is not allowed'); } catch(error){ message.channel.send("there was an error") }
正则规则说明
:精准匹配算式中的冒号\d*兼容冒号前后可能存在的其他数字字符,避免漏拦9{3,}限定连续9的数量≥3,符合拦截要求
如果你需要更严格的匹配逻辑,只拦截[数字]:[全是9的字符串]这类格式的算式,可以将正则替换为/^\d+:9{3,}$/,避免误拦截其他包含冒号和9的合法算式。
内容的提问来源于stack exchange,提问作者American Stig
相关产品推荐
相关产品推荐

