[ '单', '双', '大', '小', '大单', '大双', '小单', '小双', '极大', '极小', '0操', '1操', '2操', '3操', '4操', '5操', '6操', '7操', '8操', '9操', '10操', '11操', '12操', '13操', '14操', '15操', '16操', '17操', '18操', '19操', '20操', '21操', '22操', '23操', '24操', '25操', '26操', '27操', '顺子', '对子', '豹子', ], '尾数' => [ '0尾', '1尾', '2尾', '3尾', '4尾', '5尾', '6尾', '7尾', '8尾', '9尾', '尾大', '尾小', '尾单', '尾双', '尾大单', '尾大双', '尾小单', '尾小双', ], '个位球' => [ 'A大', 'A小', 'A单', 'A双', 'B大', 'B小', 'B单', 'B双', 'C大', 'C小', 'C单', 'C双', '0A', '1A', '2A', '3A', '4A', '5A', '6A', '7A', '8A', '9A', '0B', '1B', '2B', '3B', '4B', '5B', '6B', '7B', '8B', '9B', '0C', '1C', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', ], '多段' => [ '一段', '二段', '三段', '四段', ] ]; /** * 验证并解析用户输入 * @param string $input 例如 "大单100" / "5操20" * @return array|null 返回 ['rule' => 玩法, 'amount' => 金额],失败返回 null */ public static function validateInput(string $input): ?array { // 获取所有玩法 $allRules = array_merge(...self::$RULES); // 玩法正则(防止玩法里有特殊符号出错) $rulesPattern = implode('|', array_map('preg_quote', $allRules)); // 匹配玩法 + 金额 if (preg_match('/^(' . $rulesPattern . ')(\d+)$/u', $input, $matches)) { return [ 'rule' => $matches[1], 'amount' => (int)$matches[2] ]; } return null; } }